python 游戲(猜單詞Hangman)


1.游戲思路和流程圖

實現功能:隨機一個單詞讓玩家猜測(后續難度實現修改為成語填空,成語必須要有提示,可修改猜的次數,增加連續猜成語,難度系數隨着次數的增加而增加)

游戲流程圖

2. 單詞庫和模塊

import random
word='''and away big blue can come down find for funny go'''
word_list=word.split()

3. 游戲開始提示

def game_info():
'''游戲開始提示函數'''
print('歡迎來到猜單詞')
print('游戲提示:你有9次猜單詞的機會,一次只能猜一個字母')

4. 重新開始游戲輸入驗證

def Double_choice(a,b,hint):
'''雙選擇驗證函數
:param a 第一個選項值
:param b 第二個選項值
:param hint 選項信息
:return 返回輸入值'''
choice=''
while choice.lower() !=a and choice.lower() !=b:
print(hint)
choice=input()
return choice

5. 用戶輸入驗證

def letter_limited(letter,right_letter_list):
'''字母輸入約束條件
:param letter 用戶輸入單詞
:param right_letter_list 用戶猜中單詞列表
:return 返回 用戶輸入單詞'''
while True:
if len(letter) !=1:
print('請輸入一個字母')
elif letter in right_letter_list:
print('這個字母猜過了,請重新猜一個字母')
elif letter not in 'abcdefghijklmnopqrstuvwxyz':
print('請輸入英文字母')
else:
break
letter=input()
return letter.lower()

6. 猜詞判斷(游戲核心)

def word_handle(user_letter,guess_letter_list,right_letter_list):
'''字母判斷
:param user_letter 用戶輸入字母
:param guess_letter_list 需要猜測的字母列表
:param right_letter_list 用戶猜中的字母列表
:return 返回用戶猜中的字母列表'''
for i in range(len(guess_letter_list)):
if user_letter == guess_letter_list[i].lower():
right_letter_list[i]=guess_letter_list[i]
return right_letter_list

7. 游戲完成度提示

def game_content_hint(guess_letter_list):
'''游戲界面函數'''
print('單詞完成度:%s'%' '.join(guess_letter_list))

8. 游戲核心外殼

def game_start():
'''游戲開始函數'''
guess_word=random.choice(word_list)
guess_letter_list=list(guess_word) #猜單詞的列表
right_letter_list=['_'for i in guess_letter_list] #用戶看見的單詞列表
count=9 #猜取的次數
while count:
game_content_hint(right_letter_list)
print('猜單詞中的字母(剩余機會%d)'%count)
user_letter=letter_limited(input(),right_letter_list)
# print(user_letter)
right_letter_list=word_handle(user_letter,guess_letter_list,right_letter_list)
# print(right_letter_list)
if right_letter_list == guess_letter_list:
break
count -= 1
if right_letter_list == guess_letter_list:
print('恭喜你猜中了全部字母,這個單詞是%s'%guess_word)
else:
print('你的機會用光了也沒猜中,這個單詞是%s' %(guess_word))

9. 游戲外殼(重新開始游戲)

def game_shell():
'''外殼程序'''
game_info() # 游戲開始提示
game_start()
while True:
message='你想在玩一次嗎(Y or N)'
again_flag=Double_choice('y','n',message)
if again_flag=='n':
break
game_start()

10. 運行游戲

game_shell()



python學習途徑

本游戲參考書本 <<Python游戲編程快速上手>>

友情推薦:  猿人學Python【 https://www.yuanrenxue.com/】 由一群工作十余年的老程序員結合實際工作經驗所寫的Python教程。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM