«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как создать игру «Виселица» на Python: пошаговое руководство

Как создать игру «Виселица» на Python: пошаговое руководство

Опубликовано 9 ноября 2024 г.
Просматривать:603

How to Build a Hangman Game in Python: A Step-by-Step Guide

Hangman — это классическая игра в угадывание слов, которая доставляет удовольствие и является отличным проектом для начинающих программистов.

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

К концу вы поймете, как использовать базовые структуры управления, функции и списки Python для создания этой игры.


Что такое Палач?

Цель игры Hangman — угадать секретное слово, предлагая буквы по одной.

Игрок может сделать только ограниченное количество неправильных предположений до окончания игры.

За каждое неправильное предположение вытягивается часть фигурки «палача», и если полная фигура вытягивается до того, как слово будет отгадано, игрок проигрывает.

Давайте разберемся и построим игру шаг за шагом.


Шаг 1: Спланируйте игру

Давайте спланируем игру и ее ключевые особенности:

  • Игра случайным образом выбирает слово.
  • Игрок угадывает по одной букве.
  • У игрока ограниченное количество неверных предположений.
  • Игра отображает слово с правильно угаданными буквами и пробелами для остальных букв.

Игра будет состоять из следующих компонентов:

  • Подбор слов
  • Ввод игрока (угадайте)
  • Обновить отображение слова
  • Отслеживайте количество неверных предположений

Шаг 2. Импортируйте необходимые библиотеки

Мы будем использовать модуль случайных чисел, чтобы случайным образом выбирать слово из списка.


import random



Шаг 3: Определите список слов

Далее определите список слов, из которых игра будет выбирать случайным образом.

Вы можете добавить больше слов, чтобы сделать игру более интересной.


word_list = ['python', 'java', 'hangman', 'programming', 'computer']



Шаг 4: Определите функции для игры

Функция 1: случайный выбор слова

Нам нужна функция для случайного выбора слова из нашего списка слов.


def get_random_word(word_list):
    return random.choice(word_list)


Функция 2: отображение текущего состояния слова

Пока игрок угадывает буквы, нам нужно показывать правильно угаданные буквы и заполнители (_) для неугаданных букв.


def display_word(word, guessed_letters):
    display = ''
    for letter in word:
        if letter in guessed_letters:
            display  = letter   ' '
        else:
            display  = '_ '
    return display.strip()


Функция 3: Проверьте, выиграл ли игрок

Эта функция проверяет, все ли буквы слова угаданы.


def is_word_guessed(word, guessed_letters):
    for letter in word:
        if letter not in guessed_letters:
            return False
    return True


Функция 4: Показать палача

Чтобы отобразить фигуру палача в текстовой игре, вы можете использовать ASCII-изображение для представления различных стадий палача.


def display_hangman(wrong_guesses):
    stages = [
        """
           -----
           |   |
           O   |
          /|\\  |
          / \\  |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
          /    |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
           |   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
               |
               |
               |
        --------
        """,
        """
           -----
           |   |
               |
               |
               |
               |
        --------
        """
    ]
    # Reverse the list to display the stages in the correct order
    stages.reverse()
    return stages[wrong_guesses]



Шаг 5: Основной игровой цикл

Теперь мы можем собрать основной цикл игры. Этот цикл будет:

  • Отслеживайте угаданные буквы и неправильные предположения.
  • Разрешить игроку делать предположения.
  • Обновить состояние игры на основе предположения.
  • Завершите игру, когда игрок выиграет или проиграет.

Полный пример кода:


import random


# Function to get a random word from the list
def get_random_word(word_list):
    return random.choice(word_list)


# Function to display the current state of the word
def display_word(word, guessed_letters):
    display = ''
    for letter in word:
        if letter in guessed_letters:
            display  = letter   ' '
        else:
            display  = '_ '
    return display.strip()


# Function to check if the word has been guessed
def is_word_guessed(word, guessed_letters):
    for letter in word:
        if letter not in guessed_letters:
            return False
    return True


# Function to display the hangman figure
def display_hangman(wrong_guesses):
    stages = [
        """
           -----
           |   |
           O   |
          /|\\  |
          / \\  |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
          /    |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
           |   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
               |
               |
               |
        --------
        """,
        """
           -----
           |   |
               |
               |
               |
               |
        --------
        """
    ]
    # Reverse the list to display the stages in the correct order
    stages.reverse()
    return stages[wrong_guesses]


# Main function to play the game
def play_hangman():
    word_list = ['python', 'java', 'hangman', 'programming', 'computer']
    word = get_random_word(word_list)
    guessed_letters = []
    attempts = 6
    wrong_guesses = 0

    print("Welcome to Hangman!")
    print("Guess the word!")

    # Main game loop
    while wrong_guesses 

Объяснение

  • get_random_word(): Случайным образом выбирает слово из списка слов.
  • display_word(): создает строку, которая представляет текущее состояние слова, показывая правильно угаданные буквы и заполнители для неугаданных.
  • is_word_guessed(): проверяет, угадал ли игрок все буквы в слове.
  • display_hangman(wrong_guesses): эта функция принимает количество неправильных предположений в качестве аргумента и возвращает соответствующее изображение ASCII для этого этапа.
  • play_hangman(): основная функция, управляющая игрой. Он обрабатывает вводимые пользователем данные, отслеживает предположения игрока и определяет, выиграл или проиграл игрок.

Ключевые переменные:

  • guessed_letters: список для хранения букв, которые игрок угадал.
  • wrong_guesses: отслеживает, сколько неправильных предположений сделал игрок. попытки: максимально допустимое количество неправильных предположений.
  • этапы: этот список содержит художественные изображения фигуры палача в формате ASCII на разных стадиях завершения. Каждому этапу соответствует разное количество неверных предположений.

Шаг 6: Запуск игры

Чтобы запустить игру, просто выполните скрипт Python, предполагая, что вы создали файл main.py:


python main.py


Игра предложит вам ввести буквы и по мере вашего продвижения будет отображать слово с правильно угаданными буквами.

Если у вас закончатся попытки, игра закончится, и вы проиграете, например:


           -----
           |   |
           O   |
          /|\  |
          / \  |
               |
        --------

Game over! The word was: programming


Если вы правильно угадаете слово, вы выиграете, например:


           -----
           |   |
               |
               |
               |
               |
        --------

j a _ a
Enter a letter: v
Good guess! v is in the word.
Congratulations! You've guessed the word: java




Заключение

Эта простая игра Hangman демонстрирует использование управляющих структур, функций, списков и базового ввода/вывода в Python.

По мере создания этого проекта вы можете добавлять дополнительные функции, такие как:

  • Добавление категорий слов.
  • Подсказки.
  • Добавление системы оценок.

Это отличный проект, который можно развивать по мере изучения более продвинутых концепций Python.

Заявление о выпуске Эта статья воспроизводится по адресу: https://dev.to/devaservice/how-to-build-a-hangman-game-in-python-a-pep-by-step-guide-136k?1 Если есть какое-либо нарушение, пожалуйста, свяжитесь с учебным заведением[email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3