一、实验要求:
(1)在游戏开始时,随机生成一个1~100之间的整数。
(2)在游戏中,玩家有10次机会猜数。如果10次都没有猜中,则游戏失败;否则,游戏成功。
(3)在每一次猜数之后,如果未猜中,应提示猜大了还是猜小了,并提示下一次猜数的上下限。
二、测试用例:
测试用例编号 | 测试 | 预期测试结果 |
用例1 | 在9次之内猜中 | 游戏成功 |
用例2 | 在第10次猜中 | 游戏成功 |
用例3 | 猜范围外的数字 | 提示范围 |
用例4 | 猜范围内的数字 | 游戏失败 |
三、程序代码:
import randomdef starts_zero(s):# 判断该输入是否为以0为开头,避免输入八进制数s = str(s)if len(s) > 0 and s[0] == '0':return Falseelse:return Truedef guess_number_game():# 随机生成一个1~100之间的整数number_to_guess = random.randint(1, 100)print(number_to_guess) attempts = 0lower_bound = 1upper_bound = 100print("欢迎来到猜数游戏!")print("我已经想好了一个1到100之间的数字,你有10次机会来猜。")while attempts < 10:attempts += 1try:# 获取用户的猜测print("Please enter a number between {0} and {1}:".format(lower_bound,upper_bound),end = ' ')gueess = input()guess = int(gueess)'''attempts += 1'''if guess > 0 and guess < 101 and guess <= upper_bound and guess >= lower_bound and starts_zero(gueess):# 检查猜测是否正确if guess < number_to_guess:print("猜小了!")lower_bound = guess + 1elif guess > number_to_guess:print("猜大了!")upper_bound = guess - 1else:print("恭喜你,猜对了!你用了{}次机会。".format(attempts))return True # 游戏成功else:continueexcept ValueError:'''print("输入无效,请输入一个整数!")''''''attempts += 1'''# 如果在这里计数的话那么整数和字符两个输入不能同时计数 # 如果10次都没有猜中,则游戏失败print("很遗憾,你没有在10次机会内猜中数字。")return False# 运行游戏
if guess_number_game():print("游戏成功!")
else:print("游戏失败。")
四、测试结果:
# 九次猜中
# 刚好在第十次猜中
# 猜范围之外的数字
# 猜范围内的数字
# 十次回车
# 以0为开头
# 含有英文字母
# 英文,汉字,数字,回车
# 含小数点
如果有其他需求可以留言,博主看到后会更新并解决问题。