如何在prolog中找到未知迷宫中的路径? 我有初步职位,没有。行和列,但没有结束位置,我不能给行*列作为结束,因为我必须递归移动,以找到迷宫中的Wumpus,坑,墙和空白空间。
答案 0 :(得分:0)
您只能找到迷宫已知部分的路径。对于未知的路径,您可能需要使用假设,甚至可支持性也可能有助于评估期权。
格雷戈里·尤布(Gregory Yob)的原始文章很好地描绘了狩猎乌普斯游戏迷宫的发现,并展示了一些游戏玩法。此发现是否稳定还取决于一些假设,即隧道不会改变:
始于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