杰斯 - >如何自由更改模块之间的执行?

时间:2013-03-20 15:04:12

标签: module jess

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

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

  1. 执行MAIN模块,使用initial-fact触发规则。首先关注环境模块,然后关注运动模块

  2. 执行环境模块

  3. 中的规则
  4. 执行运动模块

  5. 中的规则
  6. 重复直到暂停

  7. 我一直在使用MAIN模块中的(焦点)功能(焦点环境移动),然后正确执行环境模块并转到运动模块。同样,这个也正确执行。

    然后我将重点放在MAIN模块上(我还试图再次声明初始事实以试图强制启动初始规则。但是,它不起作用。)

    不管我做什么,它都不会再次执行MAIN模块。

    有谁能请我对此有所了解?

1 个答案:

答案 0 :(得分:0)

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