【发布时间】:2013-11-30 06:54:15
【问题描述】:
我正在尝试将 Wikipedia 中的 minimax 算法用于我在 Scala 中实现井字游戏。我希望 X 玩家 -1 尝试最大化他的分数。我找到了一个很酷的静态评估函数here,我想使用它。如果棋盘对玩家来说是好棋盘,则返回正数,如果棋盘对玩家不利,则返回负数。我已经尝试了一些变化,而 X 继续只是让第一步可用。方法如下,方法和评价函数见here。
我错过了什么明显的东西吗?
// player X = -1, player O = 1
def minmax(board:Array[Int], height:Int, player:Int):Double={
if(height == 0)
evaluatePosition(board, player)
var alpha = -player * Double.PositiveInfinity;
val allBoards = makeAllPossibleMoves(board, player) // array of child boards
for(b <- allBoards){
val score = minmax(b, height-1, -player)
alpha = if (player == -1) Math.max(alpha, score) else Math.min(alpha, score)
}
alpha
}
【问题讨论】:
标签: scala artificial-intelligence minimax