You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数字猜谜程序循环异常:无法回到玩家1猜数环节求修复

问题修复:数字猜谜程序循环异常

问题根源

原代码采用两个独立while循环,逻辑完全偏离需求:第一个循环仅等待玩家1猜对,期间玩家2的猜测不会被验证是否正确;第一个循环结束后才进入第二个循环处理玩家2的猜测,直接导致流程卡死在玩家2的输入环节。此外还存在细节错误:玩家1猜数时,错误对比了玩家2的数字来判断高低,而非自己的目标数。

修复后的代码

import random

# 生成两位玩家的随机目标数
player_one_target = random.randrange(1, 100)
player_two_target = random.randrange(1, 100)

print("\nGuess your numbers\n")
game_running = True

while game_running:
    # 玩家1回合
    print("Player 1, try to guess your number:")
    guess_one = int(input())
    if guess_one == player_one_target:
        print("Correct! That was your number.\n")
        game_running = False
    else:
        print("Incorrect!")
        print("Too high\n" if guess_one > player_one_target else "Too low\n")
    
    # 若玩家1已猜对,跳过玩家2回合直接结束
    if not game_running:
        break
    
    # 玩家2回合
    print("Player 2, try to guess your number:")
    guess_two = int(input())
    if guess_two == player_two_target:
        print("Correct! That was your number.\n")
        game_running = False
    else:
        print("Incorrect!")
        print("Too high\n" if guess_two > player_two_target else "Too low\n")

# 游戏结束后公布双方目标数
print("Player One's number was:", player_one_target)
print("Player Two's number was:", player_two_target)

修复说明

  1. 用单个主循环+game_running标志控制整体流程,实现「轮流猜测、猜对即停」的核心逻辑
  2. 每轮先处理玩家1的猜测,验证正确则立即终止游戏;错误则给出对应高低提示
  3. 玩家1未猜对时,切换到玩家2的回合,同样执行验证与提示逻辑
  4. 修正了高低判断的对比对象,确保每个玩家对比自己的目标数字
  5. 简化输出语句,让提示信息更简洁直观

内容的提问来源于stack exchange,提问作者Jams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:32:44