猜数字
题目要求:
根据给定的猜数字游戏程序代码,尝试修改以使得符合下列要求,并将修改后的程序代码和运行结果截图,粘贴在实验报告中。
- 修改游戏猜测数字范围为任意连续50个整数
- 修改每轮游戏猜测数字的次数为5次或以上
- 增加提示信息,当用户猜测数字与目标数字相差绝对值≤5时,提示用户:"猜测数字已经很接近目标"
- 使得该游戏具有记录和统计用户竞猜正确率的功能,即使重启也可统计
- 增加其他你认为可以使游戏更佳完善的功能(可借助AI完成代码实现)
参考代码:
import random
print("游戏开始!")
while True:
target_num = random.randint(1, 50)
print("本轮目标数字已生成,请开始猜数!")
for i in range(5):
user_guess = int(input("请输入你猜的数字(1-50):"))
if user_guess == target_num:
print("恭喜你,猜对了!")
break
elif abs(user_guess - target_num)<=5:
print("猜测数字已经很接近目标了")
elif user_guess < target_num:
print("你猜的数字太小了")
else:
print("你猜的数字太大了")
else:
print("本轮猜测失败,答案是{}".format(target_num))
play_again = input("是否继续下一轮(输入q退出):")
if play_again.lower() == "q":
break
print("游戏结束!")
作业:
import random
import os
file_name = "guess_num.txt"
if not os.path.isfile(file_name):
with open(file_name, "w") as file:
file.write("0\n0")
# 读取存储的猜测次数和猜对次数
with open(file_name, 'r') as f:
line = f.readline()
if line:
guess_times = int(line)
correct_times = int(f.readline())
else:
guess_times = 0
correct_times = 0
print("游戏开始!")
while True:
target_num = random.randint(1, 50)
print("本轮目标数字已生成,请开始猜数!")
for i in range(5):
user_guess = int(input("请输入你猜的数字(1-50):"))
guess_times += 1
if user_guess == target_num:
print("恭喜你,猜对了!")
correct_times += 1
break
elif abs(user_guess - target_num) <= 5:
print("猜测数字已经很接近目标了")
elif user_guess < target_num:
print("你猜的数字太小了")
else:
print("你猜的数字太大了")
else:
print("本轮猜测失败,答案是{}".format(target_num))
play_again = input("是否继续下一轮(输入q退出):")
if play_again.lower() == "q":
break
print("游戏结束!")
correct_rate = correct_times / guess_times
print(f"你一共猜了{guess_times}次,其中猜对了{correct_times}次,正确率为{correct_rate:.2%}。")
with open('guess_num.txt', 'w') as f:
f.write(f"{guess_times}\n{correct_times}")

浙公网安备 33010602011771号