一、问题描述:
使用python开发一个猜数小游戏,程序随机产生0~1024之间的数字,用户输入猜测数字,程序告诉用户猜大了还是小了。在一定次数内猜对用户获胜,否则用户失败。
每一轮游戏要求用户输入用户名
程序会一直运行,直到用户输入“3”,停止游戏。在每一轮游戏前输入“1”可以查看用户输入历史。
二、涉及知识点:
- 随机生成数字,设计python 的随机数模块。
- 用户输入数字,程序输出结果。涉及python输入输出模块。
- 程序自动进行下一轮,涉及 python 循环模块。
- 判断用户输入,涉及p ython 条件判断模块。
- 查询用户输入历史,涉及python 的字典和列表模块。
三、代码构建
#调用随机数生成模块
import random
#开始游戏控制模块
def start():
name = input('请输入你的名字:')
if name == '退出':
return
if name not in history:
history[name] = []
answer = random.randint(0, 1024)
try_to_guess(name, answer)
def try_to_guess(name ,answer): #猜数游戏主体模块
try_nume = 0
while try_nume < 100 :
guess_answer =int(input('请输入一个你猜测的数字:'))
if guess_answer < answer :
print('你输入的数字小于正确答案')
elif guess_answer > answer:
print('你输入的数字大于正确答案')
else :
print('恭喜你回答正确!')
history[name].append('成功!')
break
try_nume += 1
else :
print('猜测错误次数过多,游戏失败!')
history[name].append('失败!')
# 历史记录模块
history = {}# 创建集合,存放历史记录
def show_history():
for name, data in history.items():
print('用户:{}, 记录如下:{}'.format(name, data))
# 防止输入没有的选项
def default():
print('输入错误!请重新输入' )
print('=' * 40)
if __name__ == '__main__':
select_dict = {'1': start,'2': show_history, '3': exit}
while True:
select = input('1.开始游戏
2.历史记录
3.退出游戏
请输入数字选择:')
select_dict.get(select, default)()
四、调试与运行
无论成功与否,按1 开始游戏,按2查看记录,按3 退出游戏,输入其他字符报错。