Language/Python

[ Python ] 행 맨 게임 프로그램

곽수진 2021. 9. 4. 20:35
반응형
문제 파일에서 하나의 단어를 무작위로 출제하고 단어를 맞추는 행 맨 프로그램을 작성해보자.

 

import random

infile = open('hangman.txt', 'r')
lines = infile.readlines()
word = random.choice(lines).rstrip()
solution = list(word)
result = list('_'*len(word))
turns = 10

while turns > 0:
    guess = input('단어를 추측하세요: ')
    turns -= 1
    i = 0

    for c in word:
        if c == guess:
            result[i] = c
        i += 1

    print(result)

    if result == solution:
        print('성공입니다.')
        break

    if turns <= 0:
        print('실패하였습니다.')
        break
    
infile.close()

 

import random

infile = open('hangman.txt', 'r')
lines = infile.readlines()
word = random.choice(lines).rstrip()

hangman.txt 파일을 읽기 모드로 열어줌

→ 문제 파일을 열어 무작위로 1개의 단어를 선택

 

solution = list(word) : list()는 문자열을 받아 리스트로 변환함

→ word를 리스트로 받아 solution에 저장함

 

result = list('_'*len(word)) : 리스트에 저장된 단어의 글자 수 만큼 '_'를 곱해 표현

 

turns = 10

while turns > 0:
    guess = input('단어를 추측하세요: ')
    turns -= 1
    i = 0

    for c in word:
        if c == guess:
            result[i] = c
        i += 1

    print(result)

    if result == solution:
        print('성공입니다.')
        break

    if turns <= 0:
        print('실패하였습니다.')
        break

▶ 사용자가 문제를 맞히거나 남은 틀릴 기회 횟수가 0이 될 때까지 문제는 계속 출제됨

→ 조건제어 반복을 이용해 사용자가 문제를 맞히거나 기회 횟수가 0이 될 때까지 반복했다가 성공하거나 조건에 맞지 않으면 반복문이 중지

→ 문제를 먼저 보여주고 사용자의 입력을 기다리는데, 처음에는 모든 글자를 '_'로 보여주고 사용자가 글자를 맞추면 해당 위치의 글자를 보여줌

 

메모장에 정답을 미리 입력해둠

▶ 행 맨에 필요한 문제 파일을 단어와 단어 사이 줄바꿈으로 구분해 저장

 

 

hangman 파일을 저장

파일 이름은 hangman으로 바꿔 저장

 

 

결과값 출력 모습

반응형