所以我的問題是以下幾點:我想,給定點X座標,在網格中的Y座標,以返回其所有相鄰的單元格。 (注意:在下面的例子中,我使用符號UL =左上,UM =中上,UR =右上,L =左,R =右,BL =左下,上的5×5網格ECLiPSe clp:獲取網格上的所有相鄰單元
_ _ _ _ _
_ UL UM UR _
_ L x R _
_ BL BM BR _
_ _ _ _ _
對於
對於元素x在(3,3):BM =底部中間和BR =右下)
EG。 ELE精神疾病上的5x5的網格X在(1,1)現在
x R _ _ _ BM BR _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
,如在上面的例子可以看出,細胞的鄰近於我們目前的元素x可以變化取決於X,Y的量元素x本身的座標。
我想解決這個問題的方法是,指定座標X的左側和右側的每個X以及指定座標Y上下的每個Y應位於1 ... N的域中,然後定義他們的實際值:
% Adj_cells/2 : (X,Y) coordinate, board width/height N adjacent_cells((X,Y),N) :- [Xleft,Xright,Yup,Ydown] #:: 1..N, Xleft #= X-1, Xright #= X+1, Yup #= Y-1, Ydown #= Y+1, ...
然而,當董事會的邊界越過時,它的計算結果爲false。
我希望我不會明確區分董事會邊界的情況;相反,我試圖找到一些東西,而不是隻要達到了超出邊界的座標就評估爲假,只是「丟棄」結果並嘗試計算其他相鄰單元。
我確定在ECLiPSe中會有一個很好的小解決方案,但是我搜索了這些文檔,並且也很難找到符合我需要的東西。
任何幫助,非常感謝!
正是我在找的東西,它很有道理,謝謝! – SND