作为家庭作业,我需要为Quoridor游戏创建一个AI。

经过我这边的一些分析后,我决定将游戏的棋盘表示为一个无向图(见下文)。

这个想法是找到每个棋子到他的目标的最短路径,我想这样的表示更容易做到。
问题是我真的不明白如何用Prolog来表示这样的图。我已经看到如何创建简单的无向图,大概有10条边,但这条边有81条。
一个简单的无向图示例:
arc(1,2).
arc(2,1).
arc(1,4).
arc(4,1).
arc(2,3).
arc(3,2).
arc(3,5).
arc(5,3).
arc(5,6).
arc(6,5).在此之后,我也应该更容易在图上使用MiniMax算法。
非常感谢!
发布于 2020-08-03 23:00:15
如果您根据以下方案对节点1、2、3、...、81进行编号:
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
...然后在你的图中你有从1到2的弧,从2到3的弧,不是从3到4的,而是从4到5的弧,...等等,你也有一个从4到13的弧线,但不是,例如,从5到14,对吗?
通过这种方式,您可以从图表中读出弧的列表,以获得:
arc(1, 2).
arc(2, 3).
arc(4, 5).
...
arc(4, 15).
...https://stackoverflow.com/questions/63225668
复制相似问题