J'ai ajouté quelques tirets à votre code pour essayer de comprendre ce que vous faites:
(test
(and (>= ?x ?minx)
(and (<= ?x ?maxx)
(and (>= (+ ?x (- ?y1 ?y)) ?minx)
(and (<= (+ ?x (- ?y1 ?y)) ?maxx)
Il y a manque «) » s à la fin, mais je suppose que ce n'est pas la question. Fondamentalement, si vous essayez d'exprimer la conjonction d'un tas de conditions, vous avez juste besoin d'un and
, et lui donner autant d'arguments que nécessaire. Ainsi, par exemple, quelque chose comme
(test
(and (>= ?x ?minx)
(<= ?x ?maxx)
(>= (+ ?x (- ?y1 ?y)) ?minx)
(<= (+ ?x (- ?y1 ?y)) ?maxx)))
En ce qui if
va, il est assez clairement documentée dans the manual:
(if (> ?x 100) then
(printout t "X is big" crlf)
elif (> ?x 50) then
(printout t "X is average" crlf)
else
(printout t "X is small" crlf))
Merci, très utile! –