grid([
[w, w, w, b, w],
[b ,b, w, w, w],
[w, w, w, b, w],
[w, b, b, b, b],
[w, w, w, w, w] ]).
当我有一个像这样的网格时,我想检查一个单元格是否为白色。输入查询时:
white(X/Y).
如果单元格确实是白色,则应该说是正确的。我做到了:
white(X/Y) :- grid([[w]]).
但是它不起作用,我也不知道为什么。 (我刚刚开始学习序言)
答案 0 :(得分:3)
谢谢,我明白了。
white(X/Y) :-
grid(G),
nth1(Y, G, YAxisGrid),
nth1(X, YAxisGrid, w).
答案 1 :(得分:0)
使用民俗谓词nth1进行尝试:
white(X/Y,G) :-
nth1(Y, G, R),
nth1(X, R, w).
我得到:
?- grid(G), white(3/2,G).
G = ....
?- grid(G), white(2/2,G).
false.