据我所知,Minimax决策树是实现棋盘游戏AI的好方法。目前,我正在尝试实现一个名为Gomoku的游戏(连续5个)。但有一件事我很困惑:
我环顾四周,似乎几乎所有的Minimax / AlphaBeta算法都返回一个整数。特别是对我来说,eval的返回值(bestGomokuBoard)。我怎么能找到获奖委员会的坐标?
这是我到目前为止所做的: 我有一个20x20的整数数组,代表一个空的空格(0),计算机(1)和播放器(2)。 为了减少开销,Minimax树中的每个节点都是较大阵列(较小的参考帧)的9x9阵列表示。我的eval函数返回一个int,我的minimax / alphabeta算法返回一个int。如何找到AI移动的坐标?
提前谢谢你!
答案 0 :(得分:2)
您可以制作两个略有不同的最大功能。一个只返回一个整数(得分)和另一个max-function(例如 maxWithBestMove 或 rootMax ),它返回得分和最好的举动。递归调用顺序不是:
maxWithBestMove --> min --> max --> min --> max....
查看国际象棋程序维基上Negamax Framework的注释#2。我给出了类似的答案here。