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

謝謝參與,歡迎下次再玩!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章