主要循环的伪代码
quitf = False #程序是否结束的标识
while quitf == False:
word = 随机选出一个单词
while True:
a = 从单词中随机选出一个字母
输出该字母及其在单词里的位置
s = 用户输入
if s输入的是"!"+单词:
评判对错并记录有关记录
break
elif s输入的是"quit":
quitf = True
break
程序结束并输出一组信息
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
import random
# 单词列表
word_lis = ['apple', 'Alice', 'Jerry', 'title', 'model', 'python']
class Word(object):
"""单词模型"""
def __init__(self, word_):
self.word = word_
self.len = len(word_)
self.tip_index_lis = []
self.tip_lis = []
for i in range(self.len):
self.tip_lis.append('_')
self.tip_index_lis.append(i)
def get_next_tip(self):
len_ = len(self.tip_index_lis)
if len_ > 1:
r_index = random.choice(self.tip_index_lis)
self.tip_index_lis.remove(r_index)
self.tip_lis[r_index] = self.word[r_index]
return self.get_tip(), True
else:
return self.word, False
def get_tip(self):
return ''.join(self.tip_lis)
def judge_word(self, word_):
if word_ == self.word:
return True
else:
return False
input_ = '?'
guess_num = 0 # 猜词数
correct_num = 0 # 正确数
error_num = 0 # 错误数
average_lis = [] # 每个词提示次数
while input_ != 'quit':
word = random.choice(word_lis)
guess_num += 1
tip_num = 0 # 提示次数
word_m = Word(word)
tip, status = word_m.get_next_tip()
while True:
if status:
print(tip)
input_ = input('请猜词:')
if input_.startswith('!'):
guess = input_.lstrip('!')
if word_m.judge_word(guess):
print('恭喜你!猜对啦!✔')
correct_num += 1
break
else:
error_num += 1
print('猜错啦!x')
elif input_.startswith('?'):
tip, status = word_m.get_next_tip()
tip_num += 1
elif input_ == 'quit':
break
else:
print('输入有误')
else:
print('还猜啥?本次单词为 {}'.format(word_m.word))
break
average_lis.append(tip_num)
print('游戏结束!')
print('本次游戏共猜了{}个单词,正确{}次,错误{}次,平均每个单词要求了{}轮提示'.format(guess_num, correct_num, error_num,
round(sum(average_lis) / len(average_lis)), 2))
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y