【发布时间】:2012-09-30 10:48:16
【问题描述】:
所以我才刚刚开始修补 Drools 并且很享受它,但文档(至少我找到的部分)有点深入。
我正在尝试创建一个规则,当两个对象共享一个属性但似乎无法正确获取条件时将触发该规则。如果我正确阅读了文档,则应该可以: (是的,我使用万智牌规则作为玩耍的基础,因为我很了解它们)
规则“704.5j。如果战场上有两个或更多具有相同鹏洛客类别的鹏洛客,则所有这些都被放入其拥有者的坟墓场。这称为‘鹏洛客唯一性规则’。” 什么时候 $c1 : Card (CurrentZone == ZoneType.Battlefield , Types.contains("Planeswalker") , $subtype : Types.get(1) , $c1ID : ID ); $c2 : Card (CurrentZone == ZoneType.Battlefield , Types.contains("Planeswalker") , Types.contains($subtype) , ID != $c1ID); 然后 System.out.println("密码唯一性:" + $c1.getName() + " | " + $c2.getName()); $c1.setCurrentZone(ZoneType.Graveyard); $c2.setCurrentZone(ZoneType.Graveyard); 结尾我必须在 Java 方面这样做吗?
编辑:此外,非常欢迎有关 Drools 的教程/指南建议。
【问题讨论】:
-
附注:您的示例很难阅读,因为您没有遵循 Java 命名约定。
Types在我看来像enum类,但实际上是Card的属性。否则你的例子看起来不错,问题可能出在你在 Java 端实现某些东西的方式上,或者你设置知识的方式上。 -
是的,这应该可以。你有任何错误吗?看起来不错。
-
将其简化为尽可能简单的东西,让它发挥作用,然后逐步建立完整的规则。
-
抱歉,Marko,我会相应地更改未来的 sn-ps。 :) 我会从下往上再试一次。拉维,不,一切都很好。