东北大学人工智能大作业 联系客服

发布时间 : 星期二 文章东北大学人工智能大作业更新完毕开始阅读9df9e750e418964bcf84b9d528ea81c758f52e68

step3.进行极大极小运算(Max-Min运算) Max 按取最大评估值的方向行棋

step4.等待 Min行棋,产生新的 c(o)返回 step1. 3.2五子棋机器博弈问题

varmaxmin = function(board, deep) { var best = MIN;

var points = gen(board, deep); //这个函数的作用是生成待选的列表,就是可以下子的

空位

for(vari=0;i

board[p[0]][p[1]] = R.com; //尝试下一个子 var v = min(board, deep-1); //找最大值

//如果跟之前的一个好,则把当前位子加入待选位子 if(v == best) {

bestPoints.push(p); }

//找到一个更好的分,就把以前存的位子全部清除 if(v > best) { best = v; bestPoints = []; bestPoints.push(p); }

board[p[0]][p[1]] = R.empty; //记得把尝试下的子移除 }

var result = bestPoints[Math.floor(bestPoints.length * Math.random())]; //在分数最高的几个位置中随机选择一个 return result; }

var min = function(board, deep) {

var v = evaluate(board); //评价函数,这个函数返回的是对当前局势的估分。 if(deep <= 0 || win(board)) { return v; }

var best = MAX;

var points = gen(board, deep);

for(vari=0;i

board[p[0]][p[1]] = R.hum; var v = max(board, deep-1); board[p[0]][p[1]] = R.empty; if(v < best ) { best = v; } }

return best ; }

var max = function(board, deep) { var v = evaluate(board); if(deep <= 0 || win(board)) { return v; }

var best = MIN;

var points = gen(board, deep);

for(vari=0;i

board[p[0]][p[1]] = R.com; var v = min(board, deep-1); board[p[0]][p[1]] = R.empty; if(v > best) { best = v; } }

return best; }

var min = function(board, deep, alpha, beta) { var v = evaluate(board); total ++;

if(deep <= 0 || win(board)) { return v; }

var best = MAX;

var points = gen(board, deep);