我正在使用Python制作一个基于文本的RPG游戏,但是我卡在了NPC上。我需要一些类似于树形结构的东西。例如:
Bot: 你好。 1. 嗨,你叫什么名字? 2. 嗨,你住在哪里? > 2 Player: 你住在哪里? Bot: 这是个奇怪的问题,你为什么问呢? 1. 我只是好奇。 2. 没事。 3. 躲起你的孩子,躲起你的妻子 > 1 Player: 我只是好奇。 Bot: 好吧。 1. 你喜欢奶酪吗? 2. 再见。 > 1 Player: 你喜欢奶酪吗? Bot: 是的!我爱奶酪。
每个选择都会分支到其他选择,也就是说,如果用户对第一个问题回答“1”,那么机器人会回答“我的名字是Bob,你呢?”
我的游戏设计方式不会使关卡编辑器成为不可能的任务(你可以将可以访问的每个地方存储为字典中的一个键,然后是包含其中所有内容的元组[我有一个商店类、一个敌人类、一个“传送门”类,很快还会有一个NPC类])。因此,我希望以一种可以将其全部存储在NPC类存储的变量中的方式来创建它(而不是一堆“if”语句)。
只是为了澄清,我并不是要求有人为我编写代码,我只是不确定如何解决这个问题。
精简后的需求描述:
树形结构从一个字符串开始,其中包含许多从它“分支出去”的字符串。
每个字符串都有更多的“分支”。
与元组的区别在于,需要有一个字符串作为他们分支的地方,而不是立即分裂。
Bot: 你好。 1. 嗨,你叫什么名字? 2. 嗨,你住在哪里? > 2 Player: 你住在哪里? Bot: 这是个奇怪的问题,你为什么问呢? 1. 我只是好奇。 2. 没事。 3. 躲起你的孩子,躲起你的妻子 > 1 Player: 我只是好奇。 Bot: 好吧。 1. 你喜欢奶酪吗? 2. 再见。 > 1 Player: 你喜欢奶酪吗? Bot: 是的!我爱奶酪。
每个选择都会分支到其他选择,也就是说,如果用户对第一个问题回答“1”,那么机器人会回答“我的名字是Bob,你呢?”
我的游戏设计方式不会使关卡编辑器成为不可能的任务(你可以将可以访问的每个地方存储为字典中的一个键,然后是包含其中所有内容的元组[我有一个商店类、一个敌人类、一个“传送门”类,很快还会有一个NPC类])。因此,我希望以一种可以将其全部存储在NPC类存储的变量中的方式来创建它(而不是一堆“if”语句)。
只是为了澄清,我并不是要求有人为我编写代码,我只是不确定如何解决这个问题。
精简后的需求描述:
树形结构从一个字符串开始,其中包含许多从它“分支出去”的字符串。
每个字符串都有更多的“分支”。
与元组的区别在于,需要有一个字符串作为他们分支的地方,而不是立即分裂。
dict
,其中键是用户响应(或用户响应的菜单选项),值是包含 NPC 响应和用户响应列表的元组(或另一个dict
)。 - Joel Cornett