인프런 커뮤니티 질문&답변

드가자님의 프로필 이미지
드가자

작성한 질문수

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

Project(2-2)

행맨 게임 관련해서 질문드립니다.

작성

·

260

0

기본적으로 만들어주신 행맨게임에서 여러가지 방법으로 응용 게임을 응용발전 시켜보라는 선생님의 말씀을 듣고 3개의 단어를 맞춰야 게임이 종료되는 코드를 짜보기 위해 노력했습니다. 

아래와 같이 코드를 작성하였으나 어쩐일인지 이런저런 시도를 해보아도 첫번째 게임을 성공하고 다음으로 이동이 되지 않습니다. 약간의 코드리뷰 부탁드립니다. 

# 시간 처리
import time
# 랜덤
import random
# csv 처리
import csv
# 사운드 처리
import winsound
# 처음 인사
name = input("What is your name? ")

print("Hi!, " + name, "Time to play hangman game!")

print()

# 1초 대기
time.sleep(1)

print("Start loading...")
print()

# 0.5초 대기
time.sleep(0.5)
turns = 10
# 추측 단어
guesses = ''
# 게임에 사용될 단어 리스트(3개)
word = []
# 각 게임에서 사용될 단어
gamne_word = []
with open('./resource/word_list.csv', 'r', encoding='UTF-8') as f:
    reader = csv.reader(f)
    next(reader)
    for r in reader:
        word.append(r)

random.shuffle(word)

# 게임에 사용될 단어 3개 추출
game_word = word[0:3]
print('-----여기까지 게임준비-------')

while turns > 0:
    # 실패 횟수
    failed = 0
    # 성공횟수
    success = 0
    # 정답 단어 반복
    if success == 0:
        for char in game_word[0][0]:
            # 정답 단어 내에 추측 단어가 포함되어 있는 경우
            if char in guesses:
                # 추측 단어 출력
                print(char, end=' ')
            else:
                # 틀린 경우 대시로 처리
                print("_", end=' ')
                # 실패 횟수 증가
                failed += 1

        # 단어 추측이 성공한 경우
        if failed == 0:
            print()
            print()
            print("Congratulations! The Guesses is correct.")
            success += 1
            
        print()
        # 추측 단어 글자 단위 입력
        print()
        my_hint = print('hint:', game_word[0][1])
        guess = input("guess a character:")
        # 단어 더하기
        guesses += guess

        # 정답 단어에 추측한 문자가 포함되어 있지 않으면
        if guess not in game_word[0][0]:
            # 기회 횟수 감소
            turns -= 1
            # 오류 메시지
            print("Oops! Wrong")
            # 남은 기회 출력
            print("You have", + turns, 'more guesses!')

            # 기회를 모두 사용하면
            if turns == 0:
                # 실패 메시지
                print("You hangman game failed. Bye!")

    if success == 1:
        for char in game_word[1][0]:
            # 정답 단어 내에 추측 단어가 포함되어 있는 경우
            if char in guesses:
                # 추측 단어 출력
                print(char, end=' ')
            else:
                # 틀린 경우 대시로 처리
                print("_", end=' ')
                # 실패 횟수 증가
                failed += 1
            # 단어 추측이 성공한 경우
        if failed == 0:
            print()
            print()
            print("Congratulations! The Guesses is correct.")
            success += 1

        print()
        # 추측 단어 글자 단위 입력
        print()
        my_hint = print('hint:', game_word[1][1])
        guess = input("guess a character:")
        # 단어 더하기
        guesses += guess

        # 정답 단어에 추측한 문자가 포함되어 있지 않으면
        if guess not in game_word[0][0]:
            # 기회 횟수 감소
            turns -= 1
            # 오류 메시지
            print("Oops! Wrong")
            # 남은 기회 출력
            print("You have", + turns, 'more guesses!')

            # 기회를 모두 사용하면
            if turns == 0:
                # 실패 메시지
                print("You hangman game failed. Bye!")

    if success == 2:
        for char in game_word[2][0]:
            # 정답 단어 내에 추측 단어가 포함되어 있는 경우
            if char in guesses:
                # 추측 단어 출력
                print(char, end=' ')
            else:
                # 틀린 경우 대시로 처리
                print("_", end=' ')
                # 실패 횟수 증가
                failed += 1
            # 단어 추측이 성공한 경우
        if failed == 0:
            print()
            print()
            print("Congratulations! The Guesses is correct.")
            success += 1
            break

        print()
        # 추측 단어 글자 단위 입력
        print()
        my_hint = print('hint:', game_word[2][1])
        guess = input("guess a character:")
        # 단어 더하기
        guesses += guess

        # 정답 단어에 추측한 문자가 포함되어 있지 않으면
        if guess not in game_word[0][0]:
            # 기회 횟수 감소
            turns -= 1
            # 오류 메시지
            print("Oops! Wrong")
            # 남은 기회 출력
            print("You have", + turns, 'more guesses!')

            # 기회를 모두 사용하면
            if turns == 0:
                # 실패 메시지
                print("You hangman game failed. Bye!")

답변 1

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

if success 조건문문을 1, 2 로 나누지 말고 3 이하 등으로 합치시는 게 좋을 것 같아요.

드가자님의 프로필 이미지
드가자

작성한 질문수

질문하기