0
作爲一名教練自己流口水的練習,我正在制定橋牌遊戲競價規則。這些規則獨立於對方(通過在規則中使用drools.halt()來強制執行),但是當我試圖通過刪除halt()調用來擴展該示例時,我得到了我沒有想到的行爲。在下面的示例中,我將第一條規則中的halt()註釋掉,並將size()條件添加到第二條規則中以替換它,嘗試阻止第二條規則被觸發。我不希望第二條規則會被觸發,因爲第一條規則的後果爲競價收藏添加了競價,因此在規則2中計數不應爲零。我已經嘗試在第一條規則中明確添加「更新」或「修改」指令,但這沒有任何區別。爲什麼規則2的規則1後果影響行爲?
rule "rule1"
salience 100
when
$auction : Auction($currentBidder : currentBidder != null)
$hand : Hand(owner.equals($currentBidder), getTotalPoints(getLongestSuit()) >= 13)
then
$auction.bid($currentBidder, new Bid(1, $hand.getLongestSuit()));
//drools.halt();
end
rule "rule2"
salience 1
when
$auction : Auction($currentBidder : currentBidder != null, getPlayerBids().size() == 0)
Hand(owner.equals($currentBidder))
then
$auction.bid($currentBidder, new Pass());
drools.halt();
end
謝謝,但我已經試過,並沒有幫助 – wytten