2014-04-08 4 views
0

각 사실에 대해 규칙을 한 번만 수행하려면 어떻게해야합니까?각 사실에 대해 규칙을 한 번만 실행하십시오.

(defrule clean 
    ?li<-(VISUAL::removedLine ?line)  
    ?cr<-(point (x ?px) (y ?py &: (< ?py ?line))) 
    => 
    (modify ?cr (x ?px) (y (+ 1 ?py)))) 

이 규칙을 실행하고 수정하면 새 점이 만들어지고 해당 새 점에 대한 규칙도 실행됩니다.

point (x 1) (y 2) 

실행 규칙

point (x 1) (y 3) 

실행 규칙이 같은 난 그냥 한 번 실행하게 할

point (x 1) (y4) 

, :

point (x 1) (y 2) 
,536 예를 들어

규칙

point (x 1) (y 3) 

답변

1

또 다른 테트리스 플레이어를 실행? :-)

어쨌든, 당신은

(defrule clean 
    (declare (no-loop TRUE)) 
    ?li<-(VISUAL::removedLine ?line)  
을 사용해야합니다
관련 문제