如何在 Prolog 中制作迷宫?

How to make a maze in Prolog?

对于一个项目,我必须在 Prolog 中编写一个基本的迷宫。唯一的问题是下图中代表迷宫的KB我不知道怎么写。

这是我目前拥有的,但我应该能够逐字逐句地找到拍拍。

% size of maze, including barriers.
mazeSize(7,7)
barrier(1,6).
barrier(2,2).
barrier(2,3).
barrier(3,2).
barrier(3,6).
barrier(4,1).
barrier(5,4).
barrier(5,6).
barrier(6,1).
barrier(7,4).

它应该是这样的:

希望有人能帮助我!提前致谢!

您的方法是合理的,但您还需要 node_name(1, 1, a) 之类的事实来映射节点名称和坐标。此外,7x7 迷宫显然与所示的 4x4 迷宫不对应。

一个根本不需要坐标的更简单的解决方案是只枚举连接的节点,而不是障碍:

connection(a, b).
connection(b, f).

等等,但不是 connection(b, c)。请注意,您可能需要表达连接是双向的,因此 ba 也是连接的。