最新回答 / 善良的兔子
<...圖片...>各種輸~??!被動防御,不過學習算法也是好的~?。?/div>
2016-11-14
那些說這不算AI的,好好理解人工智能的“人工”二字,這個算法的思路和我們普通人下五子棋的思路是差不多的,無非先看需不需要堵別人,然后看自己在看下哪獲勝幾率大而已,這個程序無非是把人自主判斷獲勝的思維過程形式化、數據化地表示出來了,至于你說要通過學習不斷調整balabala的,那是“智能”,而且更多地來看應該屬于機器學習范疇,而不是本課程的側重點,請移步別處自行學習?。ú环晦q)
老師講得很好,也很細致,贊一個!
老師講得很好,也很細致,贊一個!
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
最新回答 / _details
//做了一點點修改var over=false; ? ? ? ? ? ?//游戲結束標志var role=true; ? ? ? ? ? ? // true--黑棋 ,false--白棋,默認玩家先手var boardInfo=[]; ? ? ? ? ?//記錄落子信息for(var i=0;i<15;i++){ boardInfo[i]=[]; for(var j=0;j<15;j++){ boardInfo[i][j]=0; }}/*贏法數組及其初始化*/var wins=[];var ...
2016-10-21
已采納回答 / 吳智彬
你肯定是在哪步寫錯了,給你提供完整的參考代碼吧!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