meong_j
기록하는 습관.
meong_j
전체 방문자
오늘
어제
  • 분류 전체보기 (176)
    • 개인 공부 정리 (0)
    • 서버 운영 (37)
      • Linux (36)
    • Frontend (11)
      • Vue.js (10)
    • Backend (70)
      • Java (4)
      • Python (22)
      • Django (38)
      • Spring (6)
    • Database (5)
      • Oracle (4)
      • MySQL (1)
      • MariaDB (0)
    • Android (14)
      • Kotlin (6)
    • 배포 (9)
      • Docker (8)
      • AWS (1)
    • IT_study (29)
      • Coding test (17)
      • 알고리즘 (5)
      • 스터디 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • github

인기 글

반응형

태그

  • DHCP
  • gabagecollecter
  • 테크커리어
  • 코틀린자료형
  • 개발자도서
  • 이차원배열정렬
  • dockersecret
  • 안드로이드adaptor
  • django
  • Proxy
  • docker
  • router-link
  • 배포인프라
  • SASS Variables
  • 중첩라우트
  • cpu사용률
  • dp #알고리즘
  • Kotlin
  • 리눅스방화벽
  • 리눅스인증

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
meong_j

기록하는 습관.

파이썬 - 행맨(Hangman) 미니 게임 제작하기
Backend/Python

파이썬 - 행맨(Hangman) 미니 게임 제작하기

2021. 9. 17. 14:31
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~")

 

 

 

 

[게임 실행 결과]

 

10번 안에 단어 맞추기 성공일 경우

 

10번 기회 모두 실패일 경우

 

 

 

 

반응형

'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
    'Backend/Python' 카테고리의 다른 글
    • 파이썬 설치 및 환경 설정하기 ( Windows10 )
    • 파이썬 - File Write & read
    • 파이썬 - 외장 함수(External Functions)
    • 파이썬 - 내장 함수(Built-in functions)
    meong_j
    meong_j
    #it #개발일기 #개발공부 #개발자 #백앤드 #생각정리 #시간은 실력에 비례한다 #뭐든지 꾸준히 열심히 #오늘의 내가 내일의 나를 만든다

    티스토리툴바