0

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

4

1 回答 1

-1

您只能找到迷宫已知部分的路径。对于未知的路径,您可能需要使用假设,甚至概率可能有助于评估选项。

Gregory Yob 的原始文章很好地描述了 Hunt the Wumpus 游戏迷宫的发现,该文章展示了一些游戏玩法。这个发现是否稳定还取决于隧道不会改变的一些假设:

在此处输入图像描述

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

为了允许对 1972 年的原始版本 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

于 2019-05-13T13:19:15.320 回答