"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python으로 행맨 게임을 만드는 방법: 단계별 가이드

Python으로 행맨 게임을 만드는 방법: 단계별 가이드

2024-11-09에 게시됨
검색:257

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

Hangman은 재미 있고 초보 프로그래머를 위한 훌륭한 프로젝트인 고전적인 단어 추측 게임입니다.

이 기사에서는 Python으로 행맨 게임의 간단한 버전을 빌드하는 방법을 알아봅니다.

마지막에는 Python의 기본 제어 구조, 함수 및 목록을 사용하여 이 게임을 만드는 방법을 이해하게 됩니다.


행맨이란 무엇입니까?

행맨의 목표는 한 글자씩 제안하여 비밀 단어를 추측하는 것입니다.

플레이어는 게임이 끝나기 전에 제한된 수의 잘못된 추측만 할 수 있습니다.

잘못된 추측마다 "행맨" 그림의 일부가 그려지고, 단어가 추측되기 전에 전체 그림이 그려지면 플레이어가 패배합니다.

이를 세분화하여 단계별로 게임을 구축해 보겠습니다.


1단계: 게임 계획

게임과 주요 기능을 계획해 보겠습니다.

  • 게임은 무작위로 단어를 선택합니다.
  • 플레이어는 한 번에 한 글자씩 추측합니다.
  • 플레이어의 잘못된 추측 횟수는 제한되어 있습니다.
  • 게임은 정확하게 추측된 문자와 나머지 문자에 대한 공백을 사용하여 단어를 표시합니다.

게임에는 다음 구성요소가 있습니다:

  • 단어 선택
  • 플레이어 입력(추측)
  • 단어 표시 업데이트
  • 잘못된 추측 횟수 추적

2단계: 필수 라이브러리 가져오기

random 모듈을 사용하여 목록에서 단어를 무작위로 선택합니다.


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단계: 게임 실행

게임을 실행하려면 main.py 파일을 만들었다고 가정하고 Python 스크립트를 실행하면 됩니다.


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




결론

이 간단한 행맨 게임은 Python의 제어 구조, 함수, 목록 및 기본 입력/출력의 사용을 보여줍니다.

이 프로젝트를 빌드하면서 다음과 같은 기능을 더 추가할 수 있습니다.

  • 단어 카테고리를 추가합니다.
  • 힌트를 제공합니다.
  • 점수 시스템을 추가합니다.

이것은 고급 Python 개념을 배우면서 확장할 수 있는 훌륭한 프로젝트입니다.

릴리스 선언문 이 글은 https://dev.to/devasservice/how-to-build-a-hangman-game-in-python-a-step-by-step-guide-136k?1에 재현되어 있습니다.1 침해가 있는 경우 , [email protected]로 문의해주세요.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3