【问题标题】:Minimax / Alpha Beta Algorithm - Finding the AI's move in GomokuMinimax / Alpha Beta Algorithm - 在五子棋中寻找 AI 的移动
【发布时间】:2011-07-26 16:14:44
【问题描述】:

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

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

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

提前谢谢你!

【问题讨论】:

    标签: minimax gomoku


    【解决方案1】:

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

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

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

    【讨论】:

    • 这就是我喜欢 Stackoverflow 的原因。我几乎问了一个关于代码中可怕错误的问题,但是当我查看这个答案时,我立即发现了问题的根源并修复了所有问题,尽管我的问题有些不同。那我就不用问愚蠢的问题了。 8)
    • 很高兴能帮您解答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    相关资源
    最近更新 更多