1
我想實現主席在棋盤上,可以有其他件隨機單元格上的可能動作。我已經能夠做出答案的草圖,但它沒有檢測到其他部分。國際象棋:主教與CLIPS移動
以前這個規則我已經寫了像創建爲表的每個單元下面的事實,說明其內容的一些代碼:
(cell-info (coor {i} {j}) (contents {empty|black|white}))
的,表示該條位置一個事實:
(piece (row {r}) (column {c}) (type {t}) (color {col}))
這是我的規則,到目前爲止(可能這也是不太有效):
(defrule bishop-moves
(declare (salience 30))
(piece (row ?rb) (column ?cb) (type bishop) (color black))
(cell-info (coor ?i ?j) (contents empty|white))
=>
(loop-for-count (?n 1 8)
(if (or (and (= ?i (+ ?rb ?n)) (= ?j (+ ?cb ?n)))
(and (= ?i (- ?rb ?n)) (= ?j (- ?cb ?n)))
(and (= ?i (+ ?rb ?n)) (= ?j (- ?cb ?n)))
(and (= ?i (- ?rb ?n)) (= ?j (+ ?cb ?n))))
then (assert (movement-allowed
(destination-cell ?i ?j)
(type bishop)
(start-cell ?rb ?cb))))))
現在有人可以做什麼嗎?提前致謝。