如何解决在 Clingo 骑士路径程序中从棋盘中删除 a1 字段
我需要对棋盘上的骑士路径和汉密尔顿循环进行一些模拟,但我想知道如果我从棋盘中排除某些字段会怎样
xchessboard(1..8).
ychessboard(1..8).
time(1..8*8+1).
xypos(X,Y) :- xchessboard(X),ychessboard(Y).
fromTO(X1,Y1,X2,Y2) :- xypos(X1,Y1),xypos(X2,Y2),|X1-X2| = 1,|Y1-Y2| = 2.
fromTO(X1,|X1-X2| = 2,|Y1-Y2| = 1.
1 { position(I,X,Y) : xypos(X,Y) } 1 :- time(I).
:- time(I),time(I+1),xypos(X1,position(I,X1,position(I+1,not
fromTO(X1,Y2).
:- time(I1-1),time(I2),I1 < I2,xypos(X,Y),position(I1,position(I2,Y).
:- position(1,X+Y>2.
:- position(8*8+1,X+Y>2
上面是 clingo 中的代码,我需要从这个棋盘上删除一些像 a1 这样的文件,但我不知道该怎么做,有人可以帮助我吗? 谢谢
解决方法
此外,您的棋盘上没有“a1”而是 (1,1),只是不要推迟要删除的位置的 xypos/2 事实:
xchessboard(1..8).
ychessboard(1..8).
remove(1,4).
remove(3,2).
xypos(X,Y) :- xchessboard(X),ychessboard(Y),not remove(X,Y).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。