Пошаговое руководство по созданию игры «Виселица» с использованием Python.

Виселица — это игра-угадайка, в которую играют два игрока. Один игрок загадывает слово, а другой пытается его угадать, пробуя по одному алфавиту за раз с ограниченным числом попыток. Обычно в нее играют с бумагой и карандашом, но подождите, вы уже знаете, что такое «Виселица», и, вероятно, играли в нее. Так о чем эта статья на самом деле?

Эта статья представляет собой пошаговое руководство по созданию игры «Виселица» с помощью Python. Мы напишем функции, чтобы сделать код более модульным и читабельным. Мы будем использовать циклы для анализа строки и использовать условные операторы, чтобы принять или отклонить предположение. Первоначально слово будет представлено тире, и по мере того, как мы предоставим правильные предположения, они будут заменены предположением.

Правила игры

  1. Если игрок ошибается, количество шансов уменьшается на единицу, а неверное предположение сохраняется.
  2. Если игрок угадывает правильно, тире, соответствующие этой догадке, заменяются этой догадкой, и догадка сохраняется без уменьшения количества шансов.
  3. Если игрок угадывает букву, которую он уже угадал, то шансы не обнаруживаются, и ему выдается сообщение о том, что он уже угадал ее.
  4. Если игрок использует все свои шансы и все еще не может угадать слово, игра окончена.
  5. Если игрок угадывает слово правильно, то он выигрывает игру.

Давайте код

Для игры в эту игру нам нужен источник слов. Вы можете найти в репозитории файл с именем words.txt, в котором содержится множество слов, которые можно использовать для этой цели. Итак, нашим первым шагом будет чтение текста из файла words.txt. Функция loadWords() выполняет это действие. После этого шага нам нужно выбрать случайным образом слово, которое будет служить секретным словом, которое нужно угадать. Функция chooseWord() выполняет это действие. Мы импортируем модуль random для выполнения случайного выбора.

Мы вызываем функцию ChooseWord(), чтобы получить секретное слово и передать его функции hangman(), которая является функцией-драйвером для нашей игры. После каждого предположения нам нужно убедиться, что слово было угадано правильно или нет. Это выполняется с помощью функции isWordGuessed(). Он принимает секретное слово и letterGuessed в качестве параметров и возвращает true, если все буквы в секретном слове присутствуют в letterGuessed, в противном случае возвращает false. Если эта функция возвращает значение true, это означает, что игрок правильно угадал слово и выиграл игру.

Следующая функция, getAvailableLetters(), возвращает алфавиты, которые еще не угаданы. В качестве параметра он принимает алфавиты, которые были угаданы. Последняя вспомогательная функция — getGuessedWord(). Эта функция отвечает за отображение тире и букв, которые были угаданы правильно. При каждом успешном предположении тире заменяется правильным предположением.

Наконец, мы подошли к функции hangman(). Эта функция принимает секретное слово в качестве параметра и управляет всей игрой. Существует цикл, который продолжает работать до тех пор, пока пользователь не угадает слово правильно или пока пользователь не погасит все свои предположения. Существуют условия, гарантирующие, что мы не вводим ничего, кроме алфавитов, и вводим только один алфавит за раз. Вспомогательные функции вызываются после каждого предположения, и решения принимаются на его основе.

Работа в игре

Игра начинается с запуска файла play_hangman.py. Всего есть 8 шансов на угадывание, и если мы хотим изменить сложность игры, мы можем увеличить или уменьшить ее.

Если мы угадываем букву правильно, это говорит о том, что это была хорошая догадка, и отображает позицию догадки. В этом случае мы угадали «а», и он отображает «а» в его видимой позиции. Также мы получаем доступные буквы, по которым можно угадать следующую букву. Поскольку буква «а» была угадана правильно, ее не будет среди доступных букв. Так как это верное предположение, количество предположений остается прежним.

Если мы неправильно угадали слово. Количество догадок уменьшится на единицу, а среди доступных букв не будет неверных догадок.

Вот и все. Мы создали нашу собственную игру про палача с нуля, используя Python. Мы также можем улучшить игру, предоставив подсказки относительно секретного слова. Код для этого можно найти в Prithivee7/Hangman (github.com)

Хотите присоединиться?
Если вам понравилась эта статья, подпишитесь на меня здесь, на Medium, чтобы узнать больше о машинном обучении и компьютерных науках.

Связано — Притхив Рамалингам

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.