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

文本谋杀解谜游戏重复导航冗余优化:用循环替代重复函数调用

解决文本谋杀解谜游戏的导航代码冗余问题

我在开发一款基于文本的谋杀解谜游戏(玩家需阅读证词猜凶手)时,遇到了重复导航选项的代码冗余问题。

原有冗余实现代码

fbjn = input()
def testimonies(sub):
    if sub == "Harb":
        print_out(harbt)
        print_out("\nWhose testimony would you like to hear? ")
        fbjn = input()
        testimonies(fbjn)

需求目标

希望用更简洁的方式实现功能,让证词查询逻辑可以重复执行直到用户选择退出,无需重复编写相同的导航调用代码。

优化方案:用循环替代递归

改用while True无限循环实现,既避免了递归调用的代码冗余,也更易维护:

def testimonies():
    while True:
        sub = input("Whose testimony would you like to hear? (输入quit退出)\n")
        if sub == "Harb":
            print(harbt)
            continue
        # 添加退出逻辑,满足用户"选择退出"的需求
        if sub.lower() == "quit":
            print("退出证词查询")
            break

关键难点说明

核心难点在于理解循环的作用域特性:递归写法会不断创建新的函数调用栈,变量作用域随每次调用变化,还存在递归深度限制风险;而循环在同一个函数作用域内执行,变量复用更高效,逻辑也更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:57:39