在序言迷宫中没有实现

问题描述

enter image description here

迷宫从 a 到 e。

当我运行 get(a,e[a]).

2

解决方法

正如我在之前的评论中所说,问题在于 get/3library(pce) 中预定义的谓词。修复您的代码很简单:

door(a,b).
door(b,c).
door(c,d).
door(d,e).

myget(X,X,A,P) :-
    reverse(A,P),!.
myget(X,Y,P) :-
   once(door(X,Z);door(Z,X)),not(member(Z,A)),format('I am in room ~w.~n',Z),myget(Z,[Z|A],P).

查询:

?- myget(a,e,[a],P).
I am in room b.
I am in room c.
I am in room d.
I am in room e.
P = [a,b,c,d,e].