파이썬 미니 프로젝트(6)
행맨 게임 만들기
행맨 게임 FlowChart
무작위 단어를 고르고 정답 확인하기
import random
print("** 베스킨라빈스 아이스크림 행맨 게임 **")
print("베스킨라빈스 아이스크림 이름을 추측해서 맞춰보세요.")
print("행맨을 꼭 살려주세요")
wordlist = ["아이스허쉬앤리세스", "핑크스푼비긴즈", "비타500소르베","피나콜라다", "초코넛마카다미아", "오레오쿠키앤크림",
"월넛", "오레오쿠키앤카라멜", "엄마는외계인", "아몬드봉봉", "민트초콜릿칩", "슈팅스타", "베리베리스트로베리", "바람과함꼐사라지다",
"레인보유샤베트", "31요커트", "체리쥬빌레" ]
randomword = list(random.choice(wordlist)) # 문자열을 한 글자씩 끊어서 리스트로 바꾸기
print(randomword)
** 베스킨라빈스 아이스크림 행맨 게임 **
베스킨라빈스 아이스크림 이름을 추측해서 맞춰보세요.
행맨을 꼭 살려주세요
['비', '타', '5', '0', '0', '소', '르', '베']
무작위 단어를 빈칸으로 바꿔 표현하기
blankword = []
for i in range(len(randomword)) :
blankword.append("_")
print(blankword)
['_', '_', '_', '_', '_', '_', '_', '_']
유저의 정답을 확인하고 빈칸을 맞춘 글자로 바꾸기
# 유저가 단어를 맞출 수 있는 기회 안내
print(f"당신이 단어를 맞출 수 있는 기회는 총 {userlife}회 입니다.")
print("비어있는 칸을 보고 예상되는 글자를 맞춰주세요.")
guessword = input("예상되는 글자를 입력해 주세요. : ")
if guessword in randomword :
randomwordindex = list(filter(lambda x : randomword[x] == guessword, range(len(randomword)))) #list에서 value 값으로 다중 index찾기
for i in range(len(randomwordindex)) :
blankword[randomwordindex[i]] = guessword #정답을 맞춘 글자로 바꾸기
print(randomwordindex)
print(blankword)
플레이어가 이겼는지 확인하기
# 유저가 단어를 맞출 수 있는 기회 안내
startlife = len(randomword)
userlife = len(randomword)
print(f"당신이 단어를 맞출 수 있는 기회는 총 {userlife}회 입니다.")
print("비어있는 칸을 보고 예상되는 글자를 맞춰주세요.")
print()
while userlife != 0 :
if blankword != randomword :
guessword = input("예상되는 글자를 입력해 주세요. : ")
userlife -= 1
if guessword in randomword :
randomwordindex = list(filter(lambda x : randomword[x] == guessword, range(len(randomword)))) #list에서 value 값으로 다중 index찾기
for i in range(len(randomwordindex)) :
blankword[randomwordindex[i]] = guessword #정답을 맞춘 글자로 바꾸기
print("당신이 입력한 글자 : " + guessword)
print(f"맞췄어요. 기회는 {userlife}회 남았습니다.")
# print(randomwordindex)
print(blankword)
else:
print(f"틀렸어요. 기회는 {userlife}회 남았습니다.")
else :
print(f"대단해요! 당신은 {startlife-userlife}회만에 성공했네요. 축하합니다. ")
break
for i in blankword :
if i == "_" :
print("당신은 실패했습니다. ")
break
당신이 단어를 맞출 수 있는 기회는 총 8회 입니다.
비어있는 칸을 보고 예상되는 글자를 맞춰주세요.
맞췄어요. 기회는 7회 남았습니다.
['비', '_', '_', '_', '_', '_', '_', '_']
맞췄어요. 기회는 6회 남았습니다.
['비', '타', '_', '_', '_', '_', '_', '_']
맞췄어요. 기회는 5회 남았습니다.
['비', '타', '5', '_', '_', '_', '_', '_']
맞췄어요. 기회는 4회 남았습니다.
['비', '타', '5', '0', '0', '_', '_', '_']
맞췄어요. 기회는 3회 남았습니다.
['비', '타', '5', '0', '0', '소', '_', '_']
맞췄어요. 기회는 2회 남았습니다.
['비', '타', '5', '0', '0', '소', '르', '_']
맞췄어요. 기회는 1회 남았습니다.
['비', '타', '5', '0', '0', '소', '르', '베']
당신이 맞췄군요. 대단해요.!
행맨 아스키코드 추가 및 프로그램 수정
import random
# 행맨 아스키코드 리스트
stages = ['''
+---+
| |
O |
/|\ |
/ \ |
|
=========
''', '''
+---+
| |
O |
/|\ |
/ |
|
=========
''', '''
+---+
| |
O |
/|\ |
|
|
=========
''', '''
+---+
| |
O |
/| |
|
|
=========''', '''
+---+
| |
O |
| |
|
|
=========
''', '''
+---+
| |
O |
|
|
|
=========
''', '''
+---+
| |
|
|
|
|
=========
''']
blankword = []
end_of_game = False
userlife = len(stages)-1
startcount = len(stages)
finalcount = len(stages)
# 게임 시작 및 랜덤 단어 선택하기
print("** 베스킨라빈스 아이스크림 행맨 게임 **")
print("베스킨라빈스 아이스크림 이름을 추측해서 맞춰보세요.")
print("행맨을 꼭 살려주세요")
wordlist = ["아이스허쉬앤리세스", "핑크스푼비긴즈", "비타500소르베","피나콜라다", "초코넛마카다미아", "오레오쿠키앤크림",
"월넛", "오레오쿠키앤카라멜", "엄마는외계인", "아몬드봉봉", "민트초콜릿칩", "슈팅스타", "베리베리스트로베리", "바람과함꼐사라지다",
"레인보유샤베트", "31요커트", "체리쥬빌레" ]
randomword = list(random.choice(wordlist)) # 문자열을 한 글자씩 끊어서 리스트로 바꾸기
len_randomword = len(randomword)
# 비어있는 단어 출력
for i in range(len_randomword) :
blankword.append("_")
print(blankword)
print()
# 단어 추측하기
print(f"당신이 단어를 맞출 수 있는 기회는 총 {startcount}회 입니다.")
print("비어있는 칸을 보고 예상되는 글자를 맞춰주세요.")
print()
while end_of_game == False :
guessword = input("예상되는 글자를 입력해 주세요. : ")
print("당신이 입력한 글자 : " + guessword)
if guessword in randomword :
for i in range(len_randomword) :
if randomword[i]== guessword :
blankword[i] = guessword
# randomwordindex = list(filter(lambda x : randomword[x] == guessword, range(len(randomword)))) #list에서 value 값으로 다중 index찾기
# for i in range(len(randomwordindex)) :
# blankword[randomwordindex[i]] = guessword #정답을 맞춘 글자로 바꾸기
finalcount -= 1
print("맞췄어요.")
print(blankword)
else :
print("틀렸어요")
print(stages[userlife])
userlife -= 1
if not "_" in blankword :
print(f"대단해요! 당신은 {startcount-finalcount}회만에 성공했네요. 축하합니다. ")
end_of_game = True
if userlife == 0 :
end_of_game = True
print("당신은 실패해습니다.")
** 베스킨라빈스 아이스크림 행맨 게임 **
베스킨라빈스 아이스크림 이름을 추측해서 맞춰보세요.
행맨을 꼭 살려주세요
['_', '_', '_', '_', '_', '_', '_', '_']
당신이 단어를 맞출 수 있는 기회는 총 7회 입니다.
비어있는 칸을 보고 예상되는 글자를 맞춰주세요.
틀렸어요
+---+
| |
|
|
|
|
=========
틀렸어요
+---+
| |
O |
|
|
|
=========
틀렸어요
+---+
| |
O |
| |
|
|
=========
틀렸어요
+---+
| |
O |
/| |
|
|
=========
틀렸어요
+---+
| |
O |
/|\ |
|
|
=========
틀렸어요
+---+
| |
O |
/|\ |
/ |
|
=========
당신은 실패해습니다.