0

我知道 Minimax 决策树是为棋盘游戏实现 AI 的好方法。目前,我正在尝试实现一个名为 Gomoku 的游戏(连续 5 个)。但是有一点我很困惑:

我环顾四周,似乎几乎所有 Minimax/AlphaBeta 算法都返回一个整数。特别是对我来说,eval(bestGomokuBoard) 的返回值。我应该如何找到获胜板的坐标?

这是我到目前为止所做的:我有一个 20x20 的整数数组,代表一个空白空间(0)、计算机(1)和播放器(2)。为了减少开销,Minimax Tree 中的每个节点都是较大数组(较小的参考框架)的 9x9 数组表示。我的 eval 函数返回一个 int,我的 minimax/alphabeta 算法返回一个 int。如何找到 AI 移动的坐标?

并提前感谢您!

4

1 回答 1

2

您可以制作两个略有不同的最大函数。一个只返回一个整数(得分),另一个最大函数(例如maxWithBestMoverootMax)返回得分最佳移动。递归调用顺序将是:

maxWithBestMove --> min --> max --> min --> max....

查看国际象棋编程 wiki 上Negamax 框架中的注释 #2 。我在这里给出了类似的答案。

于 2011-03-31T19:22:50.887 回答