728x90
반응형
파이썬으로 행맨 게임 만들기
- 기본 프로그램 제작 및 테스트
[간략 소개]
- word_list.csv 파일 랜덤으로 읽어서 맞출 단어 저장
- 단어 개수, 힌트 출력 후 정답 맞추기
- 영어 철자 맞추면 공개
- 10번 기회 안에 맞출 시 띵-동 사운드 나면서 정답처리
- 실패시 fail 사운드 나면서 게임 종료
import time
# CSV 처리
import csv
# 랜덤
import random
# 사운드 처리
import winsound
# 처음 인사
name = input("What's your name? ")
print("Hi, "+ name, "Time to play Hangman game!")
print()
time.sleep(1)
print("Start Loading....")
print()
time.sleep(0.5)
# CSV 단어 리스트
words = []
# 문제 CSV 파일 로드
with open('./resource/word_list.csv','r') as f:
reader = csv.reader(f)
#헤더스킵
next(reader)
for c in reader:
words.append(c) #리스트로 삽#
#리스트 섞기
random.shuffle(words)
q = random.choice(words)
# 정답 단어
word = q[0].strip() #0번째 단어 공백제거
# 추측 단어
guesses = ''
# 기회
turns = 10
# 핵심 while Loop
# 찬스 카운트가 남아 있을 경우
while turns > 0:
# 실패 횟수(단어 매치 수)
failed = 0
#정답 단어 반복
for char in word:
# 정답 단어 내에 추측 문자가 포함되어 있는 경우
if char in guesses:
#추측 단어 출력
print(char, end=' ')
else:
#틀린 경우 대시로 처리
print("_", end=' ')
failed += 1
# 단어 추측이 성공한 경우
if failed == 0:
print()
print()
#성공 사운드
winsound.PlaySound('./sound/good.wav', winsound.SND_FILENAME)
print('Congratulations! The guesses is correct!!')
#while구문 중단
break
print()
# 추측 단어 글자 단위 입력
print()
print('Hint : {}'.format(q[1].strip()))
guess = input("guess a charater.")
# 단어 더하기
guesses += guess
# 정답 단어에 추측된 문자가 포함되어 있지 않으면
if guess not in word:
# 기회 횟수 감소
turns -= 1
#오류 메시지
print("Opps! Wrong!")
#남은 기회 출력
print("You have", turns, 'more guesses')
if turns == 0:
#실패 사운드
winsound.PlaySound('./sound/bad.wav', winsound.SND_FILENAME)
# 실패 메시지
print("You Hangman game failed . Bye~")
[게임 실행 결과]
반응형
'Backend > Python' 카테고리의 다른 글
파이썬 설치 및 환경 설정하기 ( Windows10 ) (0) | 2021.09.29 |
---|---|
파이썬 - File Write & read (0) | 2021.09.17 |
파이썬 - 외장 함수(External Functions) (0) | 2021.09.16 |
파이썬 - 내장 함수(Built-in functions) (0) | 2021.09.16 |
파이썬 - 예외 처리(exception) (0) | 2021.09.16 |