Prolog Wumpus如何在未知的迷宫中找到路径

时间:2018-05-23 12:39:01

标签: prolog maze wumpus-world

如何在prolog中找到未知迷宫中的路径? 我有初步职位,没有。行和列,但没有结束位置,我不能给行*列作为结束,因为我必须递归移动,以找到迷宫中的Wumpus,坑,墙和空白空间。

1 个答案:

答案 0 :(得分:0)

您只能找到迷宫已知部分的路径。对于未知的路径,您可能需要使用假设,甚至可支持性也可能有助于评估期权。

格雷戈里·尤布(Gregory Yob)的原始文章很好地描绘了狩猎乌普斯游戏迷宫的发现,并展示了一些游戏玩法。此发现是否稳定还取决于一些假设,即隧道不会改变:

enter image description here

始于1972年的原始Wumpus BASIC程序
https://www.atariarchives.org/bcc1/showpage.php?page=247

为了允许尝试使用1972年的原始版本的《 The Hunt the Wumpus》,我已将BASIC代码转换为Prolog。它使用Erlang样式编程,因此没有断言/缩回。游戏状态只是通过尾递归和互递谓词调用传递和修改。

但是要将其嵌入到某些计划系统中,您将需要处理更多代码,并删除read_line / 1和write / 1和nl / 1,并通过对播放器与播放器之间的交互进行建模来替换它。游戏。

以Erlang样式翻译为Prolog
https://github.com/jburse/jekejeke-samples/tree/master/pack/games