我正在剪辑中写一个项目,我有一些协调的实体(棋盘游戏的方格)。我像这样定义他们的模板:
(deftemplate square
(slot x (type INTEGER))
(slot y (type INTEGER))
)
所以我想要一个能够获得方向参数的函数,如右,左,上,下和?x,?y coords,并返回位于该方向的方形的坐标(与当前方向接壤)。
问题是函数可以返回单个值,而我需要x,y。
我试过了
(return ?x ?y)
和
(return (?x ?y))
但它们都会出现语法错误。
有没有办法实现这一点,或者我需要解决它?
感谢您的时间。
答案 0 :(得分:2)
使用create $在多字段值中放置多个值。然后,您可以使用nth $检索单个值:
CLIPS>
(deffunction direction ()
(return (create$ 1 -1)))
CLIPS> (direction)
(1 -1)
CLIPS> (nth$ 1 (direction))
1
CLIPS> (nth$ 2 (direction))
-1
CLIPS>