我正在尝试在 Prolog 中创建一个迷宫程序,其目的是找到一条从迷宫起点到迷宫中心点 m 的路线。迷宫由使用四种颜色之一连接的正方形组成:蓝色、绿色、紫色或橙色。从起点到中心的路线遵循四种颜色的重复图案。
我创建了以下代码:
link2(A, Colour, B) :- link(A, Colour, B).
link2(A, Colour, B) :- link(B, Colour, A).
changecolour(blue,green).
changecolour(green,purple).
changecolour(purple,orange).
changecolour(orange,blue).
route(A, Colour1, B, List2) :-
link2(A, Colour1, B),
append([A], [B], List2).
route(A, Colour1, B, List2) :-
link2(A, Colour1, X),
changecolour(Colour1,Colour2),
append([A], List, List2),
\+ member(A, List),
route(X, Colour2, B, List).
由于某种原因,代码无法按预期工作,我不确定为什么。我有一种感觉,这与否定(非成员)规则有关,但有人可以建议我做错了什么吗?