inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Project(2-2)

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

319

드가자

작성한 질문수 12

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!")

파이썬 python 행맨게임

답변 1

0

좋은사람

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

인스턴스 변수 문의

0

35

1

챕터 03_04 (튜플) 교육자료

0

33

2

Package(3-1) Sub 폴더 자료

0

36

1

아톰 출력 안됨

0

63

2

강의자료 메일 발송 요청 드립니다.

0

75

1

강의자료 메일로 보내주실 수 있으실까요?

1

50

0

Iterable 요소는 리스트로 작성해야하는 것 맞나요?

1

76

2

강의자료 부탁드립니다

0

59

2

if Flase: print('Bad')

0

58

1

=와 == 의 차이

0

77

1

functions 함수 섭들을려고하는데요

0

67

1

강의자료 부타드리겠습니다!

0

58

0

VSCODE에 VIEW에서 SELECTED INTERPRETER조회가 안됩니다.

0

65

1

강의자료 부탁드립니다.

0

52

0

dict의 Key를 바꾸는 방법

0

61

1

강의자료부탁드립니다

0

61

1

run withount 디버깅 및 F5+ctrl이 안먹혀요

0

60

1

강의 자료와 예정 다운로드

0

73

2

객체지향 vs 함수형

0

60

1

어렵네요 설정도

0

75

1

설정이 잘 된건지

0

51

1

맥 os vscode 설정 - python interpreter select

0

104

1

강의자료 부탁드립니다. mytoughgirl@naver.com 입니다.

0

45

1

vscode로 수업 진행한 영상은 없는건가요?

0

57

2