Java явно создает достоверные факты. одно отличие — MAIN::JCJessPlayer против MAIN::player. я не уверен, что является причиной этого.
поэтому мой вопрос: почему эти факты не вызывают срабатывание проверки на факт? любая помощь будет оценена по достоинству.
Джон
;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;
; Цели MatchBuilder:
; 1) все играют одинаковое количество игр
; 2) игрок, ожидающий самого длинного, играет следующим
; 3) минимизировать команды с одинаковыми игроками
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;
Код: Выделить всё
(import com.soundsoftware.boccemgrjess.JCJessPlayer)
(deftemplate player (declare (from-class JCJessPlayer)))
(watch activations)
(defrule start-execution
(declare (salience 50))
=>
; (facts)
(printout t "Executing" crlf))
(defrule test-for-a-fact
(declare (salience 40))
(player (initials ?i))
=>
(printout t "Player" ?i crlf))
(defrule finalize
(declare (salience -10))
=>
(facts)
(printout t "Done" crlf)
)
Код: Выделить всё
==> Activation: MAIN::start-execution : f-0
==> Activation: MAIN::finalize : f-0
Executing
f-0 (MAIN::initial-fact)
f-1 (MAIN::JCJessPlayer (available TRUE) (candidate FALSE) (class ) (gamesPlayed 0) (initials "LZA") (key "fe75d3c4-d6fc-483e-b3a9-f90d42b88849") (lastplaytime 100) (picked FALSE) (OBJECT ))
Готово
Жестко запрограммированные дефакты
Код: Выделить всё
==> Activation: MAIN::start-execution : f-0
==> Activation: MAIN::finalize : f-0
==> Activation: MAIN::test-for-a-fact : f-1
==> Activation: MAIN::test-for-a-fact : f-2
==> Activation: MAIN::test-for-a-fact : f-3
==> Activation: MAIN::test-for-a-fact : f-4
==> Activation: MAIN::test-for-a-fact : f-5
==> Activation: MAIN::test-for-a-fact : f-6
==> Activation: MAIN::test-for-a-fact : f-7
==> Activation: MAIN::test-for-a-fact : f-8
==> Activation: MAIN::test-for-a-fact : f-9
==> Activation: MAIN::test-for-a-fact : f-10
Executing
PlayerLZA
PlayerJZU
PlayerAZU
PlayerAZJ
PlayerJZC
PlayerPZH
PlayerBZU
PlayerKZU
PlayerMZW
PlayerDZW
f-0 (MAIN::initial-fact)
f-10 (MAIN::player (available true) (candidate false) (class ) (gamesPlayed 0) (initials "LZA") (key ) (lastplaytime 10) (picked false) (OBJECT nil))
Готово
Подробнее здесь: https://stackoverflow.com/questions/792 ... -jess-rule
Мобильная версия