клипы: изменение переменной утверждения в предшествующем

Я пытался изменить одну переменную из одного утверждения в антецеденте, но мне это не удалось.

В результате я могу изменять переменные с помощью привязки, присваивания и т. д., но я хотел бы сделать следующее:

(defrule test
  ?h<-(Currentposition ?x ?y)
  (not (Explored (+ ?x 1) ?y))
=> (whatever)

Итак, проблема в том, что у меня есть персонаж, перемещающийся по карте, и я хочу исследовать неизвестные клетки, поэтому я хочу перейти к ним, и для этого я помечаю их как Исследованные.

В примере я хочу проверить, исследована ли южная ячейка, как мне это сделать? Я добавляю 1 к x, потому что перемещаюсь на 1 строку ниже, x-> строки, y-> столбцы

Спасибо


person Bluer    schedule 12.05.2017    source источник


Ответы (1)


Используйте =, ограничение возвращаемого значения:

(defrule test
   ?h <- (Currentposition ?x ?y)
   (not =(Explored (+ ?x 1) ?y))
   =>)
person Gary Riley    schedule 12.05.2017