代码改变世界

第六周作业

2025-04-08 10:18  nm1137  阅读(73)  评论(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