Я новичок в этом, так что это может звучать глупо, но здесь мы идем.
(deftemplate player
(slot nume)
(slot pozitie)
(slot goluri)
)
(deftemplate team
(slot nume)
(multislot players)
(slot plasamet)
(slot goluri (default 0))
)
(defrule goluriEchipa
?id <- (echipa (nume ?n) (players $?x ?y $?z)(goluri ?ge))
(player (nume ?y) (goluri ?gj))
=>
(modify ?id (goluri (+ ?gj ?ge)))
)
Я знаю, почему он застрял в цикле, потому что сумма в "goluri" всегда меняется.Так что, если я удаляю это так,
(defrule goluriEchipa
?id <- (echipa (nume ?n) (jucatori $?x ?y $?z))
(jucator (nume ?y) (goluri ?gj))
=>
(modify ?id (goluri (+ ?gj ?ge)))
)
цикл останавливается, но мне все равно нужно значение из него.У меня есть индекс факта, могу ли я получить значения?Я видел несколько примеров того, как ?id:goluri
работает для циклов, но здесь это не работает.
Редактировать: я забыл упомянуть, моя цель - добавить сумму всех целей игрока в цели команды.