文本谋杀解谜游戏重复导航冗余优化:用循环替代重复函数调用
解决文本谋杀解谜游戏的导航代码冗余问题
我在开发一款基于文本的谋杀解谜游戏(玩家需阅读证词猜凶手)时,遇到了重复导航选项的代码冗余问题。
原有冗余实现代码
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
相关产品推荐
相关产品推荐

