본문 바로가기

파이썬

[python] 행맨 게임(Hangman)

반응형

행맨 게임(Hangman)은 단어 추측 게임으로, 사용자가 제한된 시도 횟수 내에서 단어의 모든 글자를 맞추는 것이 목표입니다. 각 시도에서 플레이어는 알파벳 하나를 선택하고, 이 알파벳이 주어진 단어에 포함되어 있는지 확인합니다. 만약 포함되어 있다면, 해당 알파벳이 위치한 자리를 채워 넣습니다. 만약 포함되어 있지 않다면, 시도 횟수가 하나 줄어듭니다.

주어진 횟수 내에 플레이어가 단어의 모든 글자를 맞추면 게임에서 이깁니다. 반대로, 시도 횟수를 모두 소진했는데도 단어를 완전히 맞추지 못한 경우 게임에서 지게 됩니다.

import random   # random 모듈을 임포트하여 무작위 단어를 선택할 수 있습니다.

 
#hangman(words, max_attempts) 함수는 행맨 게임을 실행하는 함수입니다.
 
def hangman(words, max_attempts):
 
    chosen_word = random.choice(words)
 
    guessed_word = ["_"] * len(chosen_word)
 
    attempts = 0    #attempts 변수는 플레이어가 시도한 횟수를 저장합니다.

    while attempts < max_attempts:
 
        print("현재 상태:", " ".join(guessed_word))
 
        guess = input("알파벳 하나를 입력하세요: ").lower()

 
        if len(guess) != 1 or not guess.isalpha():
 
            print("잘못된 입력입니다. 알파벳 하나를 입력해주세요.")
 
            continue

        if guess in chosen_word:
 
            for i, letter in enumerate(chosen_word):
 
                if letter == guess:
 
                    guessed_word[i] = guess
 
        else:
 
            attempts += 1

        if "_" not in guessed_word:
 
            print("축하합니다! 정답은 '{}'입니다.".format(chosen_word))
 
            break
 
    else:
 
        print("기회를 모두 소진했습니다. 정답은 '{}'였습니다.".format(chosen_word))

 
words = ["apple", "banana", "cherry", "grape", "lemon", "melon", "orange", "strawberry"]
 
max_attempts = 6
 
hangman(words, max_attempts)

 

 

<실행결과>

현재 상태: _ _ _ _ _
알파벳 하나를 입력하세요: l
현재 상태: _ _ _ _ _
알파벳 하나를 입력하세요: g
현재 상태: g _ _ _ _
알파벳 하나를 입력하세요: r
현재 상태: g r _ _ _
알파벳 하나를 입력하세요: a
현재 상태: g r a _ _
알파벳 하나를 입력하세요: p
현재 상태: g r a p _
알파벳 하나를 입력하세요: e
축하합니다! 정답은 'grape'입니다.

반응형