Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Дороги люди, можете пожалуйста написать код на питоне по типу «акинатора» с угадыванием 12 слов

саша самойлов Ученик (99), открыт 1 день назад
Напишите пожалуйста легкий код
2 ответа
Богдан Емельянов Профи (637) 1 день назад
Вот простой пример игры в стиле "Акинатор", где игрок должен угадать одно из 12 заранее заданных слов. В этой игре компьютер будет задавать вопросы, а игрок будет отвечать "да" или "нет". В зависимости от ответов, программа будет пытаться угадать слово.

Пример кода:

class Akinator:
def __init__(self):
self.questions = [
"Это животное?",
"Это домашнее животное?",
"Это крупное животное?",
"Это млекопитающее?",
"Это птица?",
"Это водное животное?",
"Это хищник?",
"Это мирное животное?",
"Это рептилия?",
"Это насекомое?",
"Это вредитель?",
"Это экзотическое животное?"
]
self.words = [
"собака",
"кот",
"слон",
"орел",
"акула",
"лягушка",
"змея",
"большой варан",
"таракан",
"панда",
"коала",
"кенгуру"
]
self.word_to_guess = None

def start_game(self):
print("Давайте сыграем в угадайку!")
self.word_to_guess = self.words[0] # Замените на случайное слово из списка при желании

for question in self.questions:
answer = input(question + " (да/нет): ").strip().lower()
if answer == 'да':
print("Хорошо, продолжаем!")
# Здесь можно добавить логику для определения слова, основываясь на ответах
elif answer == 'нет':
print("Понял, давайте попробуем другое!")
else:
print("Пожалуйста, отвечайте 'да' или 'нет'.")

print(f"Я думаю, это {self.word_to_guess}!")

if __name__ == "__main__":
game = Akinator()
game.start_game()


### Как работает этот код:
1. Определяется класс `Akinator` с вопросами и словами.
2. Метод `start_game()` запускает игру, задавая вопросы.
3. Игрок отвечает на вопросы, и на основе ответов программа будет пытаться угадать слово (в этом простом примере она просто отдает первое слово из списка).

### Как улучшить код:
- Вы можете добавить логику для выбора слова на основе ответов.
- Расширить количество вопросов и слов.
- Создать более сложную логику для обработки ответов.
- Реализовать случайный выбор слова.

Это базовая версия, которую можно развивать
Анатолий Зяблин Просветленный (28270) 1 день назад
Держи
 import random 

# Список слов для угадывания
words = [
"кот", "собака", "птица", "рыба",
"слон", "тигр", "медведь", "заяц",
"черепаха", "лошадь", "кролик", "обезьяна"
]

# Вопросы для угадывания
questions = [
("Это домашнее животное?", ["кот", "собака"]),
("Это млекопитающее?", ["кот", "собака", "слон", "тигр", "медведь", "заяц", "лошадь", "кролик"]),
("Это животное с хвостом?", ["кот", "собака", "тигр", "медведь", "заяц"]),
("Это животное, которое может летать?", ["птица"]),
("Это морское животное?", ["рыба"]),
("Это крупное животное?", ["слон"]),
("Это дикий зверь?", ["тигр", "медведь"]),
("Это рептилия?", ["черепаха"]),
("Это животное с длинными ушами?", ["заяц"]),
("Это животное, которое может бегать быстро?", ["лошадь"]),
("Это примат?", ["обезьяна"]),
]

def guess_animal():
print("Я буду задавать вам вопросы, чтобы угадать ваше слово.")

possible_words = set(words) # Начинаем с полного списка слов

for question, valid_words in questions:
# Проверяем, есть ли среди возможных слов слова из списка valid_words
if possible_words.intersection(valid_words):
answer = input(f"{question} (да/нет): ").strip().lower()
if answer == 'да':
possible_words.intersection_update(valid_words)
else:
possible_words.difference_update(valid_words)

# Если осталась только одна возможность, мы можем угадать
if len(possible_words) == 1:
print(f"Я думаю, что это: {possible_words.pop()}")
return

# Если не удалось угадать
if possible_words:
print(f"Я не смог угадать. Возможно, это одно из: {', '.join(possible_words)}")
else:
print("Кажется, я ошибся. Попробуйте снова!")

# Запуск игры
if __name__ == "__main__":
guess_animal()
Похожие вопросы