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

Python文本冒险游戏:实现章节动态适配的输入循环函数

解决Python文本冒险游戏动态章节输入循环的方案

核心思路

通过扩展章节字典结构,将每个章节的跳转目标、死亡文本等信息存入字典,同时让输入循环函数接收当前章节作为参数,实现无需为每个章节编写单独函数的动态逻辑。

步骤实现

1. 完善章节结构字典

给每个章节补充Next_Chapter(输入1跳转的目标章节)和Death_Text(输入2触发的死亡文本)键,示例如下:

chapters = {
    'Start': {
        'Main': '欢迎来到冒险的起点!输入1开始第一章,输入2直接结束',
        'Next_Chapter': 'Chapter_1',
        'Death_Text': '你还没开始就放弃了,游戏结束'
    },
    'Chapter_1': 
    {
        'Main': '你进入了第一章,前面有两条路:1走右边去第二章,2走左边触发陷阱',
        'Main_Q1': ['Q1', 'Q2'],
        'Next_Chapter': 'Chapter_2',
        'Death_Text': '你踩中了陷阱,被尖刺刺穿,游戏结束'
    },
    'Chapter_2':
    {
        'Main': '你来到了第二章,这里有一个分支区域',
        'Main_Q1': ['Q1', 'Q2'],
        'Sub': 'Chapter_2_Sub',
        'Sub_Q1': ['Q1', 'Q2'],
        'Next_Chapter': 'Chapter_3', # 可根据实际需求设置后续章节
        'Death_Text': '你不小心掉进了深渊,游戏结束'
    }
}

2. 修改输入循环函数Eingabe_loop

让函数接收当前章节名称和章节字典作为参数,实现动态处理所有章节的输入逻辑:

def Inv():
    print('你的背包:空') # 示例背包功能,可自行扩展

def Status():
    print('当前状态:健康') # 示例状态功能,可自行扩展

def Eingabe_loop(current_chapter, chapters):
    while True:
        # 显示当前章节的主文本
        print(chapters[current_chapter]['Main'])
        print('输入1进入下一章节,输入2触发死亡,输入i打开背包,输入s查看状态,输入q退出')
        
        # 获取并处理用户输入
        eingabe = input('请输入指令:').strip()
        
        if eingabe == '1':
            next_chap = chapters[current_chapter].get('Next_Chapter')
            if next_chap:
                print(f'前往{next_chap}...\n')
                return next_chap # 返回下一章节,供外部主循环切换
            else:
                print('没有下一章节了,游戏结束')
                return None
        elif eingabe == '2':
            print(chapters[current_chapter]['Death_Text'])
            print('游戏结束')
            return None
        elif eingabe.lower() == 'i':
            Inv()
            print('\n')
        elif eingabe.lower() == 's':
            Status()
            print('\n')
        elif eingabe.lower() == 'q':
            print('退出游戏')
            return None
        else:
            print('输入错误,请重新输入!\n')

3. 编写游戏主循环

通过主循环管理章节切换,调用Eingabe_loop实现完整游戏流程:

def main():
    current_chapter = 'Start'
    while current_chapter:
        current_chapter = Eingabe_loop(current_chapter, chapters)

if __name__ == '__main__':
    main()

关键优势

  • 无冗余代码:所有章节共用同一个输入循环函数,无需为每个章节编写单独的处理逻辑。
  • 扩展性强:新增章节时只需在字典中添加对应键值对,不需要修改核心循环代码。
  • 逻辑清晰:章节的所有属性(文本、跳转目标、死亡提示)集中存储,便于维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:17:54