1、最后min电脑经过steps.length种走法对比之后,选择w值最小的一种走法,把棋盘回退一步,并返回棋盘估值和下棋位置。max走法类似,人类会选择w值最大的走法下棋,所以max函数和min函数分别代表人和AI下棋,互相递归调用,直到递归到步数为0时返回N步之后的估值。三、实验代码及数据记录1.代码 /* * Matrix 矩阵 * param type arr 矩阵二维数组 */var Matrix = function(arr) this.data = arr; this.row = arr.length; this.column = arr.length ? arr0.length :
2、 0; * multiply 矩阵乘法转换 * param type matrix 转换矩阵 * return type descriptionMatrix.prototype.multiply = function(matrix) if (this.column = matrix.row) var row = this.row, column = matrix.column, arr = ; for (var i = 0; i row; i+) arri = ; for (var j = 0; j column; j+) var sum = 0; for (var n = 0; n alph
3、a) /选择最大优势的走法 alpha = res.w; /如果人可以获得更好的走法,则AI必然不会选择这一步走法,所以不用再考虑人的其他走法 if (alpha = beta) MAX节点 + l + 个棋局,剪掉了 + (l - 1 - i) + 个MIN棋局 alpha, column * min min下棋 * return type 权重和当前推荐下棋的位置var min = function(currentChessboard, depth, alpha) var row, column, beta = Infinity; beta = currentChessboard.evaluate(); beta搜索MIN currentChessboard.put(step.row, step.column, Chessboard.MIN); if (currentChessboard.isMinWin() beta = -Infinity; var res = max(currentChessboard, depth - 1, beta) | if (res.w beta) /选择最大优势的