列表应用——猜单词游戏
猜单词游戏就是计算机随机产生一个单词,打乱其字母顺序,供玩家去猜测。此游戏采用控制字符界面,运行界面如图所示。

2. 程序设计的思路
游戏中使用序列中元组存储所有待猜测的单词。猜单词游戏需要随机产生某个待猜测单词以及随机数字,所以引入random模块随机数函数,其中random.choice()可以从序列中随机选取元素。例如:
#创建单词序列元组
WORDS = ("python", "jumble", "easy", "difficult", "answer", "continue"
, "phone", "position", "position", "game")
# 从序列中随机挑出一个单词
word = random.choice(WORDS)
word就是从单词序列中随机挑出一个单词。
游戏中随机挑出一个单词word后,如何把单词word的字母顺序打乱,方法是随机从单词字符串中选择一个位置position,把position位置的字母加入乱序后单词jumble,同时将原单词word中position位置字母删去(通过连接position位置前字符串和其后字符串实现)。通过多次循环就可以产生新的乱序后单词jumble。
while word: #word不是空串循环
#根据word长度,产生word的随机位置
position = random.randrange(len(word))
#将position位置字母组合到乱序后单词
jumble += word[position]
#通过切片,将position位置字母从原单词中删除
word = word[:position] + word[(position + 1):]
print("乱序后单词:", jumble)
3. 程序设计的具体步骤
猜单词游戏程序导入相关模块:
# Word Jumble猜单词游戏
import random
创建所有待猜测的单词序列元组WORDS 。
WORDS = ("python", "jumble", "easy", "difficult", "answer", "continue"
, "phone", "position", "pose", "game")
显示出游戏欢迎界面。
print(
"""
欢迎参加猜单词游戏
把字母组合成一个正确的单词.
"""
)
以下实现游戏的逻辑。
从序列中随机挑出一个单词,例如“easy”。然后使用2.2节介绍的方法打乱这个单词的字母顺序;通过多次循环产生新的乱序后的单词jumble。例如“easy”单词乱序后,产生的“yaes”显示给玩家。
iscontinue="y"
while iscontinue=="y" or iscontinue=="Y": #循环
# 从序列中随机挑出一个单词
word = random.choice(WORDS)
#一个用于判断玩家是否猜对的变量
correct = word
#创建乱序后单词
jumble =""
while word: #word不是空串循环
#根据word长度,产生word的随机位置
position = random.randrange(len(word))
#将position位置字母组合到乱序后单词
jumble += word[position]
#通过切片,将position位置字母从原单词中删除
word = word[:position] + word[(position + 1):]
print("乱序后单词:", jumble)
玩家输入猜测单词,程序判断出对错。猜错用户可以继续猜。
guess = input("\n请你猜: ")
while guess != correct and guess != "":
print("对不起不正确.")
guess = input("继续猜: ")
if guess == correct:
print("真棒,你猜对了!")
iscontinue=input("\n是否继续(Y/N):") #是否继续游戏
运行结果:
欢迎参加猜单词游戏
把字母组合成一个正确的单词.
乱序后单词: yaes
请你猜: easy
真棒,你猜对了!
是否继续(Y/N):y
乱序后单词: diufctlfi
请你猜: difficutl
对不起不正确.
继续猜: difficult
真棒,你猜对了!
是否继续(Y/N):n
>>>