试图找出迷宫中两个房间之间是否存在路径

时间:2019-06-05 17:19:57

标签: prolog maze

因此,我必须在序言中完成此任务,序言包括以下内容,我们得到了一个由房间组成的迷宫。有些房间与其他房间相连,有些没有。我们必须编写一个序言代码,检查是否存在从一个房间到另一个房间的路径。到目前为止,我已经编写了一个代表所有连通房间的知识库。现在,我必须添加更多内容以检查路径是否存在。

到目前为止,我已经尝试了很多事情,例如说如果X连接到Z且Z连接到X,则X和Y之间存在路径。我很确定我们必须使用递归,但是并不确定如何精确。下面,我将显示我编写的代码。

connected(X,Y) :- 
  door(X,Y);
  door(Y,X).

door(m,i).
door(m,n).
door(n,o).
door(n,o).
door(p,l).
door(j,k).
door(e,f).
door(j,f).
door(f,b).
door(a,b).
door(k,g).
door(g,c).
door(c,d).
door(d,h).
door(h,l).

path(X,X)。 路径(X,Y):-路径(X,Z),已连接(Z,Y)。

path(a,m)的预期输出应该为false。但是它陷入了无限循环。

0 个答案:

没有答案