如何用for循环实现Python双人猜数字游戏且不立即揭晓答案
双人轮流猜数字游戏实现(不立即揭晓答案)
我懂你想要的是什么——原示例里每个玩家只猜一次就直接公布答案、判定输赢,体验感实在太差了。你肯定希望两个玩家能轮流猜,猜错了给点提示,直到有人猜对才揭晓答案对吧?下面是完全符合需求的实现方案:
核心设计思路
- 提前生成1-10之间的随机数,全程隐藏直到有人猜对
- 两个玩家轮流猜测,每次猜错后给出**“猜大了”或“猜小了”**的引导提示,而非直接说“你输了”
- 一旦有玩家命中目标,立即宣布胜利并揭晓答案,游戏结束
完整代码实现
from random import randint # 生成隐藏的目标数字 target_num = randint(1, 10) players = ["玩家1", "玩家2"] current_player = 0 # 用索引标记当前轮到谁猜 print("🎮 双人猜数字游戏开始!目标数字在1~10之间,猜对即获胜!") while True: current_name = players[current_player] # 处理玩家输入,避免无效值导致崩溃 try: guess = int(input(f"\n{current_name},请输入你的猜测:")) if not 1 <= guess <= 10: print("请输入1到10之间的数字哦!") continue except ValueError: print("别闹,输入有效的整数好不好!") continue # 判断猜测结果 if guess == target_num: print(f"\n🎉 恭喜{current_name}!你猜对了!目标数字就是{target_num},获胜啦!") break elif guess > target_num: print("❌ 猜大了,再往小了试试!") else: print("❌ 猜小了,大胆往大了猜!") # 切换到另一个玩家 current_player = 1 - current_player
额外细节说明
- 加了输入校验:不管玩家输错格式还是超出范围,都会给出友好提示,不会直接崩掉
- 用索引切换玩家,逻辑简单清晰,后续要加更多玩家也容易修改
- 全程只有猜对的那一刻才会公布答案,完美满足你“不立即揭晓”的需求
要是你还想加些进阶功能,比如限制总猜测次数、记录每个玩家的猜题次数,随时说一声我再帮你调整~
内容的提问来源于stack exchange,提问作者Ian
相关产品推荐
相关产品推荐

