0

我正在开发一个游戏项目,我在 Jess 中有 3 个模块。MAIN 模块,然后是 Environment 模块和 Movement 模块。

我一直在尝试更改这 3 个模块之间的执行,但没有成功。我的想法如下:

  1. 执行主模块,使用初始事实触发规则。先关注环境模块,再关注运动模块

  2. 从环境模块执行规则

  3. 从运动模块执行规则

  4. 重复直到停止

我一直在使用主模块(焦点环境运动)中的(焦点)功能,然后它正确执行环境模块并进入运动模块。同样,这个也正确执行。

然后我将重点放在主模块上(我还尝试再次断言初始事实以尝试强制触发初始规则。但是,它不起作用)。

无论我做什么,它都不会再次执行主模块。

谁能给我一些见解?

4

1 回答 1

0

无论模块焦点如何,给定规则只会针对给定匹配触发一次。如果您需要 MAIN 中的规则再次触发,您需要首先删除导致它们触发的初始条件,然后重新创建它们。这可能就像收回(initial-fact)然后重新声明它一样简单。缩回部分很重要!

于 2013-03-21T13:12:19.537 回答