那些说这不算AI的,好好理解人工智能的“人工”二字,这个算法的思路和我们普通人下五子棋的思路是差不多的,无非先看需不需要堵别人,然后看自己在看下哪获胜几率大而已,这个程序无非是把人自主判断获胜的思维过程形式化、数据化地表示出来了,至于你说要通过学习不断调整balabala的,那是“智能”,而且更多地来看应该属于机器学习范畴,而不是本课程的侧重点,请移步别处自行学习啊(不服不辩)
老师讲得很好,也很细致,赞一个!
老师讲得很好,也很细致,赞一个!
2016-11-09
if(computerWin[k]!=0){//死三
myScore[i][j]+=2000;
}else{//活三
myScore[i][j]+=4000;
}
同理将else if(computerWin[k]==3)里面的也要替换,大家可以根据这个逻辑判断死2和活2
6.为了避免电脑每次落子同一个地方,可以再建一个数组,然后遍历所有分数,将分数最大并相同的点保存起来,然后随机取一个点落子
myScore[i][j]+=2000;
}else{//活三
myScore[i][j]+=4000;
}
同理将else if(computerWin[k]==3)里面的也要替换,大家可以根据这个逻辑判断死2和活2
6.为了避免电脑每次落子同一个地方,可以再建一个数组,然后遍历所有分数,将分数最大并相同的点保存起来,然后随机取一个点落子
2016-11-02
4.computerWin[k]=6;和myWin[k]=6没有任何意义,可以去掉
5.老师出的教程是不能判断死三和活三的,实现其实很简单,第一步去掉上面两行代码,然后将else if(myWin[k]==3)里面的内容替换成
5.老师出的教程是不能判断死三和活三的,实现其实很简单,第一步去掉上面两行代码,然后将else if(myWin[k]==3)里面的内容替换成
2016-11-02
1. chessBoard[i][j] = 111(可以是任意非0值),和me=!me可以写在oneStep函数内结尾地方
2.chess.onclick函数你面判断!me完全是多余的
3.判断最大分数用下面代码是一样的
if(myScore[i][j]>max){
max = myScore[i][j];
u = i;
v = j;
}
if(computerScore[i][j]>max){
max = computerScore[i][j];
u = i;
v = j;
}
2.chess.onclick函数你面判断!me完全是多余的
3.判断最大分数用下面代码是一样的
if(myScore[i][j]>max){
max = myScore[i][j];
u = i;
v = j;
}
if(computerScore[i][j]>max){
max = computerScore[i][j];
u = i;
v = j;
}
2016-10-31
已采纳回答 / 吴智彬
你肯定是在哪步写错了,给你提供完整的参考代码吧!index.html<...code...>style.css<...code...>script.js<...code...>
2016-10-20
已采纳回答 / qq_沒妳了半城繁華半城傷_040834
var me = true;var chessBoard = [];var over = false;var wins = [];var myWin = [];var computerWin = [];for(var i=0; i<17; i++){ chessBoard[i] = []; for(var j=0; j<17; j++){ chessBoard[i][j] = 0; }}for(var i=0; i<17; i++){ wins[i] = []; for(var j=0...
2016-10-18