猜数字

题目要求:
根据给定的猜数字游戏程序代码,尝试修改以使得符合下列要求,并将修改后的程序代码和运行结果截图,粘贴在实验报告中。

  1. 修改游戏猜测数字范围为任意连续50个整数
  2. 修改每轮游戏猜测数字的次数为5次或以上
  3. 增加提示信息,当用户猜测数字与目标数字相差绝对值≤5时,提示用户:"猜测数字已经很接近目标"
  4. 使得该游戏具有记录和统计用户竞猜正确率的功能,即使重启也可统计
  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}")
posted @ 2023-08-26 12:51  jijfurhg  阅读(95)  评论(0)    收藏  举报