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

Python双人猜数字游戏代码求助:猜中仍判定玩家一获胜

修复双人猜数字游戏的bug并优化代码

修改后的代码

def Game():
    number_to_guess = 0
    number_of_guesses = 0
    # 玩家一输入数字,验证范围1-10
    while True:
        try:
            number_to_guess = int(input("Player One enter your chosen number: "))
            if 1 <= number_to_guess <= 10:
                break
            print("Not a valid choice, please enter a number between 1 and 10.")
        except ValueError:
            print("Invalid input! Please enter an integer.")
    
    # 玩家二猜测环节
    while number_of_guesses < 5:
        try:
            guess = int(input(f"Player Two, you have {5 - number_of_guesses} guesses left. Enter your guess: "))
            if not (1 <= guess <= 10):
                print("Please enter a number between 1 and 10.")
                continue
            number_of_guesses += 1
            
            if guess == number_to_guess:
                print("Player Two wins!")
                return
            elif guess < number_to_guess:
                print("Too low! Try a higher number.")
            else:
                print("Too high! Try a lower number.")
        except ValueError:
            print("Invalid input! Please enter an integer.")
    
    # 用完所有猜测机会
    print(f"Player One wins! The number was {number_to_guess}.")

Game()

关键修改点

  • 输入错误防护:新增try-except块处理非整数输入的异常,同时验证玩家二的猜测是否在1-10范围内,避免程序因无效输入崩溃
  • 游戏体验优化:每次猜测后给出明确的高低提示,让玩家二有调整方向
  • 逻辑简化:玩家二猜中数字时直接返回并宣告胜利,避免多余判断;循环只检查剩余猜测次数,逻辑更清晰
  • 代码可读性提升:用下划线分隔的变量名(如number_to_guess)符合Python编码规范,更易维护

关于你提到的“猜中仍判定玩家一赢”的bug

原代码逻辑本身在猜中时会正确判定玩家二胜利,可能的触发原因包括:

  • 测试时输入非整数导致程序异常中断,没执行到胜利判断
  • 输入验证环节未覆盖非整数场景,引发报错后跳过了结果判定
  • 视觉误判混淆了输出内容

修改后的代码通过输入验证和即时胜利返回的逻辑,彻底杜绝了这类误判的可能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:31:21