- 推薦自己的專欄:分享一些Python案例,將所學用出來
歡迎參加猜單詞遊戲!
請把亂序後的字母組成一個單詞
亂序後的單詞: odticnraiy
請輸入您猜測的結果:dictionary
恭喜您,猜對了!
是否繼續(Y/N)?N
謝謝參與,歡迎下次再玩!
猜單詞遊戲概述
猜單詞遊戲是一種簡單的遊戲,
計算機從指定單詞列表中抽取一個單詞,通過算法,把單詞的字母順序打亂,然後輸出給玩家猜測。
玩家根據亂序的字母,組合猜測輸入正確的單詞。計算機確定是否猜測正確。
設計思路
- 使用元組或列表構建待猜測的英文單詞庫列表WORDS,使用random模塊的choice函數從單詞的元組中隨機抽取一個英文單詞word。
# 建立英文單詞庫,以元組的形式表示
WORDS = ['apple', 'pear', 'banana', 'cherry', 'good', 'better', 'best', 'python',\
'while', 'tuple', 'dictionary', 'jumble', 'difficult', 'aesthetic', 'stereotype', \
'civilization', 'anniversary']
# 隨機挑選一個單詞
word = random.choice(WORDS)
- 然後把該英文單詞的字母亂序排列
方法:每次隨機抽取一個位置的字符放入亂序的jumble字符串中,並從原word中刪除該字符
jumble = ""
for i in word:
# 隨機抽取一個位置的字符放入亂序jumble中,並從原word中刪除該字符
position = random.randrange(len(word))
jumble += word[position]
word = word[:position] + word[(position+1):]
遊戲一開始先顯示亂序後的字符串jumble(語義化:混亂),並提示用戶輸入猜測的結果,如果錯誤,提示繼續輸入,直至輸入正確。猜對之後,可以詢問是否繼續遊戲。遊戲也可以通過Ctr1+C強制中斷運行。
讀者也可以擴展程序,例如從文件中讀入單詞列表,記錄遊戲玩家的得分情況等。
random模塊的函數使用
- random.choice(seq)
參數:seq 可以是一個列表,元組或字符串。
返回值:返回隨機項。 - random.randrange([start,] stop [,step]) 返回指定遞增基數集合中的一個隨機數
範圍:[start, stop),區間是左閉右開的(左邊是包含的,右邊是不包含的)
step 指定遞增基數,基數默認值爲1。
代碼實現
word-guess.py
import random
# 建立英文單詞庫,以元組的形式表示
WORDS = ['apple', 'pear', 'banana', 'cherry', 'good', 'better', 'best', 'python',\
'while', 'tuple', 'dictionary', 'jumble', 'difficult', 'aesthetic', 'stereotype', \
'civilization', 'anniversary']
print("歡迎參加猜單詞遊戲!\n請把亂序後的字母組成一個單詞\n")
isContinue = "Y"
while isContinue in ("Y", "y"):
# 隨機挑選一個單詞
word = random.choice(WORDS)
answer = word
# 將選出的單詞進行亂序
jumble = ""
for i in word:
# 隨機抽取一個位置的字符放入亂序jumble中,並從原word中刪除該字符
position = random.randrange(len(word))
jumble += word[position]
word = word[:position] + word[(position+1):]
print("亂序後的單詞:", jumble)
guess = input("\n請輸入您猜測的結果:")
while guess != answer:
guess = input("\n結果不對,請重新猜測:")
print("\n恭喜您,猜對了!")
# 詢問是否重複遊戲
isContinue = input("\n是否繼續(Y/N)?")
print("\n謝謝參與,歡迎下次再玩!")
程序運行結果如下:
歡迎參加猜單詞遊戲!
請把亂序後的字母組成一個單詞
亂序後的單詞: odticnraiy
請輸入您猜測的結果:dictionary
恭喜您,猜對了!
是否繼續(Y/N)?N
謝謝參與,歡迎下次再玩!