You need to enable JavaScript to run this app. Python文字冒险游戏:while循环输入错误时如何返回初始路径选择环节
优惠活动
大模型
产品
解决方案
定价
更多

Python文字冒险游戏:while循环输入错误时如何返回初始路径选择环节

流程跳转实现方案

核心逻辑调整思路

将整套「路径选择-字母频次统计-战斗校验」的全流程纳入外层循环管控,当战斗环节出现输入错误、格式异常时,直接终止当前环节的重复提问,让外层循环自动回到最开始的路径选择节点;只有当战斗环节输入正确时,才跳出循环进入后续游戏流程。

改动细节

  • 把原代码中独立在循环外的路径打印、路径输入收集、字母频次统计代码块,全部移入新增的外层while True循环内部
  • 移除原战斗环节的内层死循环,该环节仅做单次输入校验,不再在输入错误时反复弹出提问
  • 战斗环节判断输入错误、捕获到输入异常时,不做任何停留在当前环节的逻辑,直接走完当前循环周期,触发外层循环从头运行

调整后完整代码

# 外层循环:承担流程失败后返回路径选择的跳转作用
while True:
    print("\n路径1 - bookkeeper", "\n路径2 - mississippi", "\n路径3 - sleeplessness", "\n路径4 - keenness", "\n路径5 - suddenness")
    path_way = input("输入你选择的对应单词,系统将统计每个字母的出现频次进行求和换算:")
    foreign_lang = []
    occurences = []
    for character in path_way:
        if character not in foreign_lang:
            foreign_lang.append(character)
            occurences.append(1)
        else:
            foreign_index = foreign_lang.index(character)
            occurences[foreign_index] = occurences[foreign_index] + 1

    for index in range(len(foreign_lang)):
        print(foreign_lang[index], "-->", occurences[index])
    print("根据统计得到的数值,进入战斗环节")

    # 战斗环节单次输入校验,无重复提问逻辑
    try:
        act_3 = int(input("输入你将要应对的敌兵数量:"))
        if act_3 == 8:
            print("\n 你轻松击败8名敌兵,顺利通过当前路径!")
            # 输入校验通过:跳出所有循环,进入后续游戏流程
            break
        else:
            # 数值输入错误:打印提示,等待外层循环跳转回路径选择
            print("抱歉,敌兵数量远超你的应对能力,你被击倒后将重新回到路径选择环节")
    except:
        # 输入格式异常:打印提示,等待外层循环跳转回路径选择
        print("抱歉,你擅自中断了任务流程,将重新回到路径选择环节")

运行逻辑说明

  • 流程启动后首先打印所有可选路径,等待用户选择
  • 战斗环节如果输入数值不对、输入了非数字内容,代码不会停留在该环节反复弹输入框,而是直接结束当前周期,回到循环开头重新展示路径列表
  • 只有当输入的敌兵数量为正确值8时,才会打印通关提示,跳出循环进入后续游戏内容

注意:外层循环是实现流程回退的核心,不需要额外写复杂的跳转逻辑,只要不主动break,循环就会自动回到起始位置执行,刚好匹配文字冒险游戏的失败重试体验

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 14:54:04