Minimax / Alpha Beta算法 - 寻找AI在Gomoku中的举动

时间:2011-03-31 07:32:26

标签: minimax gomoku

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

我环顾四周,似乎几乎所有的Minimax / AlphaBeta算法都返回一个整数。特别是对我来说,eval的返回值(bestGomokuBoard)。我怎么能找到获奖委员会的坐标?

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

提前谢谢你!

1 个答案:

答案 0 :(得分:2)

您可以制作两个略有不同的最大功能。一个只返回一个整数(得分)和另一个max-function(例如 maxWithBestMove rootMax ),它返回得分最好的举动。递归调用顺序不是:

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

查看国际象棋程序维基上Negamax Framework的注释#2。我给出了类似的答案here