Answers:
听起来有点像有向图问题。
从头开始,为故事中的每个分支记录您当前拥有的项目,然后分支该图。从那里开始,跟随每个分支并执行相同的操作,一旦到达另一个分支,请记录当前项目并分支该图。最终将得到一个非常密集的图形,其中包含许多重复的节点(但是每个节点都是通过不同的图形序列到达的),但是您应该没有循环。
最后,您应该有一个图表,其中列出了故事中任何给定时间点可以拥有的所有物品,以及通过各种可能的方式到达该物品的图表。
现在,使用完成的图形:对于需要项目X + Y + Z的每个问题,找到所有存在该问题的节点,然后查看记录的项目是否可以满足该条件。如果发生故障,只需往回走图即可找到所有使您到达那里的决策,而没有解决该问题的适当方法。
运气好的话,至少从概念上来说,您的原始设计已经这样布局,因此代码应反映现实并易于验证。
如果您要构建大型游戏,则图形搜索的处理时间可能会有些繁重,因此,像构建一个实用程序那样构建它可能会花费一些时间,并将结果输出到报告中供您使用。
这似乎是一个奇怪的答案,但是您可以使用编译器(例如c ++)轻松检查不可能的事件!让我解释一下:每个阶段只有一个头文件。游戏结束main.cpp
。每当你可以去stage a
到stage b
,你只需要包含文件涉及到stage a
在stage b
。只要您在阶段中获得新商品,就只需为该商品定义一个值。每当您丢失或使用某件物品时,只需取消定义即可。在每个阶段的最后,您只需要为该阶段所需的项目使用所有定义的值。这是一个示例如何在代码中使用它:
啊
#define itemA
h
#include <a.h>
#undef itemA
#define itemB
ch
#include <a.h>
itemA;
#include <b.h>
itemB;
main.cpp
#include <c.h>
int main()
{
}
尽管在实际使用之前可能需要进行一些更改,但是我想您可以创建一些这样的代码。您还可以在每个阶段使用继承和使用类,而不是我建议的方法。除了这些,我认为您必须自己开发工具。