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

Hangman控制台游戏代码循环异常与尝试次数计数器故障排查求助

修复Hangman游戏的无限循环与尝试次数计数问题

我来帮你排查并解决这两个核心问题,先拆解一下问题根源:

问题1:无限循环的本质原因

你的代码里有两个直接导致无限循环的点:

  • stringcount()函数的最后一行又递归调用了自身,不管用户猜中还是猜错,都会重复执行这个函数;
  • 猜错字母后,程序没有让用户输入新的字母,一直拿着最初的chosingletter重复判断,加上递归调用,直接陷入死循环。

问题2:尝试次数计数器失效的原因

  • 每次调用goAgain(defaultTries=5)时,你都把计数器重置为5,减1后变成4,但下一次调用又重新传5,永远停在4;
  • defaultTries是局部变量,每次函数调用都会重新创建,无法保留之前的计数状态。

修复后的完整代码

我重构了代码逻辑,解决了这两个问题,同时保留了你的核心功能,还新增了尝试耗尽时的游戏结束逻辑:

import time

def main():
    hangman_solved = "What 'eva hh"
    remaining_tries = 5  # 初始化剩余尝试次数,用外部作用域变量维护状态

    def go_again():
        nonlocal remaining_tries
        remaining_tries -= 1
        print(f"Head drawn! {remaining_tries} tries left")
        # 检查尝试次数是否耗尽
        if remaining_tries <= 0:
            print("Game over! You've run out of tries.")
            return False  # 返回False表示游戏结束
        return True

    def string_count(letter):
        count = hangman_solved.count(letter)
        if count == 0:
            print(f"There are no '{letter}'s in this sentence!")
            time.sleep(1)
            # 调用go_again后判断是否继续游戏
            return go_again()
        elif count == 1:
            print(f"There is only one '{letter}' in this sentence!")
        else:
            print(f"There are {count} '{letter}'s in this sentence!")
        return True  # 返回True表示可以继续猜

    # 主游戏循环
    while True:
        if remaining_tries <= 0:
            break
        choosing_letter = input("\nInput a letter you would like to try! ").strip()
        # 调用string_count,根据返回值判断是否继续
        if not string_count(choosing_letter):
            break

if __name__ == "__main__":
    main()

关键修复说明

  • 移除递归调用:用while循环作为主游戏流程,代替stringcount()的递归,彻底避免无限循环;
  • 维护尝试次数状态:用nonlocal关键字让go_again函数可以修改外部函数的remaining_tries变量,保留计数状态,不再每次重置;
  • 新增游戏结束判断:当remaining_tries减到0时,触发游戏结束逻辑并退出循环;
  • 每次猜谜重新输入字母:把输入逻辑放到主循环里,每次循环都让用户输入新的字母,避免重复判断同一个字母;
  • 代码风格优化:变量名改为符合Python规范的蛇形命名,提升代码可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 19:32:46