0

这是我遇到的一个非常具体的问题:

我正在开发一个基于文本的 RPG,主要工作是实现一个编辑器,它可以在没有任何编程知识的情况下添加 NPC、项目并将它们放置在地图上 (...)。

在执行一些 SQL 查询时,所有这些事情都可以正常工作,并且整个事情已经可以正常工作了。现在我正在编辑任务。我的基本概念是,每次玩家输入命令时,都会查询特定字符串的数据库条目,它与一组具有唯一 ID 的条件和操作相关联。这些是在 java 代码中查询的,其中特定条件(例如,玩家的钱等于 100)有一部分代码返回结果。这意味着,每次输入命令时都必须传递数百个(或更多)IF - 与根据命令执行的操作相同。我什至不确定这是否是正确的方法(如果有人对此提出建议,请随时发布)。

现在的重点是,任务基本上由任务阶段组成,其中也有要启用的条件和在启用时执行的操作。这意味着,对于每个输入的命令,所有这些查询都必须发生。我考虑过使用某种触发器,但我不知道如何实现它,因为我真的不想用这个编辑器编辑 java 代码。我也考虑过使用 prolog,但在这种情况下,我猜我必须将触发器添加到 java 代码中。

我知道这在这样的论坛中有点难以处理,但如果有人有建议,我会很高兴。

编辑:

正如评论中所建议的那样,我想缩短整个过程:如果任何命令(数以千计)可以触发一个特定的任务/任务阶段(数以千计)并且这些触发器应该使用编辑器设置,那么是什么一个正确的方法来实现它?

4

1 回答 1

1

对大量事实进行推理并在一组事实与特定条件匹配时触发动作非常适合流口水

您可以将玩家所做的每个动作/决定表示为事实,您可以将其插入到流口水知识会话中。

在该会话中,您可以将所有“触发器”存储为流口水规则,当内存中的事实集合与条件匹配时,它将触发。

drools 支持动态添加/删除/编辑规则,并明确地针对允许非开发人员使用更简单的规则语言编写逻辑。

drools 的具体部分首先是核心 - drools 专家

于 2013-06-28T18:01:36.487 回答