设计并实现一个猜数游戏程序。
实验要求如下。
(1) 在游戏开始时,随机生成一个1~100之间的整数。
(2) 在游戏中,玩家有10次机会猜数。如果10次都没有猜中,则游戏失败;否则,游戏成功。
(3) 在每一次猜数之后,如果未猜中,应提示猜大了还是猜小了,并提示下一次猜数的上下限。
程序设计、实现之后,应对代码按如下测试用例进行测试。
需求分析
随机数生成:程序开始时,应随机生成一个1至100之间的整数(包括1和100)。这个数字将作为游戏中玩家需要猜测的目标。
猜测次数限制:玩家在游戏中有限的猜测次数,具体来说是10次机会。如果在这10次机会内猜中了随机数,则玩家获胜;如果10次机会用尽仍未猜中,则游戏结束,玩家失败。
提示和反馈:每次玩家猜数后,如果没有猜中,程序应提供即时反馈,告知玩家其猜测结果是偏大还是偏小,并根据玩家的猜测更新下一次猜数的上下限范围,帮助玩家更加精准地进行下一次猜测。
用户界面和交互:程序应有简洁友好的用户界面,接受用户的输入并显示相应的提示信息,包括猜数的结果、剩余猜测次数以及接下来猜数的范围等。
代码实现
import random
def abc():
number = random.randint(1, 100)
print(number) # 供调试用,实际运用中可以注释掉
attempts = 10
min_val = 1
max_val = 100
print(f"Please enter a number between {min_val} and {max_val}.")
while attempts > 0:
guess = int(input())
if guess < min_val or guess > max_val:
print(f"Out of bounds. Please enter a number between {min_val} and {max_val}.")
continue
if guess == number:
print("猜中了")
return
elif guess < number:
min_val = max(min_val, guess + 1)
print("太小了")
else:
max_val = min(max_val, guess - 1)
print("太大了")
attempts -= 1
print("游戏结束了", number)
abc()