20242221 2024-2025-2 《Python程序设计》实验一报告
课程:《Python程序设计》
班级: 2422
姓名: 周侯妤
学号:20242221
实验教师:王志强
实验日期:2021年3月12日
必修/选修: 公选课
1.实验内容
本实验设计了一个基于Python的猜数字游戏程序,游戏难度会随着玩家的选择变化,随着游戏难度的提升,目标数字的范围会逐步扩大,从最初的1到30,逐步增加到1到100。
- 实验过程及结果
程序启动后,向玩家介绍游戏规则,并提示玩家选择游戏难度(即数字范围)。每轮游戏开始时,程序随机生成一个目标数字。玩家输入猜测数字后,程序会判断猜测结果:如果猜测数字小于目标数字,提示“太小了”。如果猜测数字大于目标数字,提示“太大了”。如果猜对目标数字,提示“恭喜你猜对了”,并结束当前轮次,即游戏结束。
程序设计:
import random
print("""
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
欢迎来到猜数字游戏!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
""")
level = int(input("请输入难度(三岁小孩:30,五岁小孩:50,十岁小孩:100,......):"))
luckynum = random.randint(1,level)
guess = int(input("请输入你猜的数字:"))
max_guesses = int(level * 0.2) # 根据难度级别设置猜测次数,例如难度100时,猜测次数为20
guesses = 0
while guesses < max_guesses:
guess = int(input("请输入你猜的数字:"))
if guess == luckynum:
print("恭喜你,猜对了!哈哈哈哈")
break
elif guess > luckynum:
print("大了,请继续输入你猜的数字:")
else:
print("小了,请继续输入你猜的数字:")
guesses += 1
else:
print(f"很遗憾,你没有猜中。我想的数字是{luckynum}。")
while True:
if guess == luckynum:
print("恭喜你,猜对了!哈哈哈哈")
if guess < 1 or guess > level:
print(f"输入无效,请输入1到{level}之间的数字!")
else:
break
except ValueError:
print("输入无效,请输入一个整数!")
break
else:
print("哈哈,你猜错了!")
if guess > luckynum:
guess = int(input("大了,请继续输入你猜的数字:"))
else:
guess = int(input("小了,请继续输入你猜的数字:"))
3.实验过程中遇到的问题和解决过程
问题1:游戏页面不美观,影响用户兴趣
问题1解决方案:在代码开始引入外观设计,增加程序厚度。
问题2:如果玩家输入的不是整数(例如字母、符号或空值),程序会抛出 ValueError 异常并崩溃。如果玩家输入的数字超出指定范围(例如小于1或大于设定的难度级别),程序不会给出提示,可能会导致玩家困惑。
问题2解决方案:在接收玩家输入时,添加异常处理机制,确保输入是有效的整数,并且在指定范围内。
问题3:游戏没有设置猜测次数的限制,可能会让玩家感到无聊或挫败。
问题3解决办法:为游戏设置一个最大猜测次数,当玩家用完猜测次数仍未猜对时,游戏结束并提示正确答案。
4.其他
游戏的核心是玩家的体验。如果游戏难度设计不合理,或者玩家在游戏过程中感到困惑、挫败或无聊,那么游戏的趣味性和教育意义都会大打折扣。从用户角度出发思考问题,逐步改进,才能使游戏更有温度,更具厚度。