代码改变世界

第六周作业

2025-04-08 10:18  nm1137  阅读(39)  评论(0)    收藏  举报

import random

def guess_number_game():
# 游戏设置
min_num = 1
max_num = 1000
secret_number = random.randint(min_num, max_num)
attempts = 0
max_attempts = 15 # 由于范围增大,增加尝试次数
guess_history = []

print("\n欢迎来到1~1000猜数游戏!")
print(f"我已经想好了一个{min_num}到{max_num}之间的数字,你有{max_attempts}次机会来猜它。")
print("每次猜测后,我会告诉你猜大了还是猜小了。\n")

while attempts < max_attempts:
    try:
        guess = int(input(f"第{attempts + 1}次尝试,请输入你猜的数字: "))
        
        # 检查输入是否在有效范围内
        if guess < min_num or guess > max_num:
            print(f"请输入{min_num}到{max_num}之间的数字!")
            continue
            
        attempts += 1
        guess_history.append(guess)
        
        if guess < secret_number:
            print("太小了!")
            min_num = max(min_num, guess + 1)  # 更新最小可能值
        elif guess > secret_number:
            print("太大了!")
            max_num = min(max_num, guess - 1)  # 更新最大可能值
        else:
            print(f"\n恭喜你!你猜对了!数字就是{secret_number}。")
            print(f"你用了{attempts}次尝试。")
            print("你的猜测历史:", " → ".join(map(str, guess_history)))
            return
            
        # 显示当前可能的数字范围
        print(f"提示: 数字在 {min_num} 到 {max_num} 之间")
        print(f"剩余尝试次数: {max_attempts - attempts}\n")
    
    except ValueError:
        print("请输入一个有效的数字!")

print(f"\n游戏结束!你没有在{max_attempts}次内猜中。")
print(f"正确的数字是{secret_number}。")
print("你的猜测历史:", " → ".join(map(str, guess_history)))

开始游戏

while True:
guess_number_game()

# 询问是否再玩一次
play_again = input("\n想再玩一次吗?(输入y继续,其他退出): ").lower()
if play_again != 'y':
    print("谢谢游玩,再见!")
    break