課程
/前端開發(fā)
/JavaScript
/JS實(shí)現(xiàn)人機(jī)大戰(zhàn)之五子棋(AI篇)
老師您好,看一下這個報(bào)錯,是因?yàn)椴荒苤苯淤x值true嗎,查資料也查不出來
2016-04-02
源自:JS實(shí)現(xiàn)人機(jī)大戰(zhàn)之五子棋(AI篇) 2-2
正在回答
這塊沒有錯,出現(xiàn)了undefine,可能是索引錯了或者沒有初始化,你可以再檢查下前面的代碼。
或者把代碼貼上來看看。
qq_指月指_0 提問者
小二胖 回復(fù) qq_指月指_0 提問者
這段代碼同樣報(bào)script.js:26?Uncaught?TypeError:?Cannot?set?property?'1'?of?undefined????at?script.js:26 for(var?i=0;?i<?15;?i++){ ????for?(var?j?=?0;?j?<?15;?j++)?{ ????????????for(var?k=0;?k<?15;?k++){? ????????????wins[j+k][i][count]?=?true; ????????????} count++; ?????} }
var?chessBoard?=?[];var?me?=?true;//贏法數(shù)組var?wins?=?[];for(var?i?=0;?i<15;?i++){ chessBoard[i]?=?[]; for(var?j?=0;?j<15;?j++){ chessBoard[i][j]?=?0; }}for(var?i=0;?i<?15;?i++){ wins[i]?=?[]; for?(var?j?=?0;?j?<?15;?j++)?{ wins[i][j]=[]; }}var?count=0;//豎線贏法for(var?i=0;?i<?15;?i++){ for?(var?j?=?0;?j?<?15;?j++)?{ //wins[0][0][0]?=?true //wins[0][1][0]?=?true //wins[0][2][0]?=?true //wins[0][3][0]?=?true //wins[0][4][0]?=?true //wins[0][1][1]?=?true //wins[0][2][1]?=?true //wins[0][3][1]?=?true //wins[0][4][1]?=?true //wins[0][5][1]?=?true for(var?k=0;?k<?15;?k++){? wins[i][j+k][count]?=?true; } count++; }}//橫線for(var?i=0;?i<?15;?i++){ for?(var?j?=?0;?j?<?15;?j++)?{ for(var?k=0;?k<?15;?k++){? wins[j+k][i][count]?=?true; } count++; }}//?斜線for(var?i=0;?i<?15;?i++){ for?(var?j?=?0;?j?<?15;?j++)?{ for(var?k=0;?k<?15;?k++){? wins[j+k][j+k][count]?=?true; } count++; }}//?反斜線for(var?i=0;?i<?11;?i++){ for?(var?j?=?14;?j?<?3;?j--)?{ for(var?k=0;?k<?5;?k++){? wins[j+k][j-k][count]?=?true; } count++; }}console.log(count);var?chess?=?document.getElementById('chess');var?context?=?chess.getContext('2d');context.storkeStyle?=?"#BFBFBF";var?logo?=?new?Image();logo.src?=?"images/logo.png"logo.onload?=?function(){ context.drawImage(logo,?0,?0,?450,?450); draChessBoard(); //?oneStep(0,0,true); //?oneStep(1,1,false);}var?draChessBoard?=?function()?{ //?畫棋盤 for(var?i=0;?i<15;?i++){ //橫線 context.moveTo(15?+?i*30,?15); context.lineTo(15?+?i*30,?435); //?context.stroke(); //縱線 context.moveTo(15?,15?+?i*30); context.lineTo(435?,15?+?i*30); context.stroke(); }}var?oneStep?=?function(i,?j,?me){ context.beginPath(); context.arc(15?+?i*30,?15?+?j*30,?13,?0,?2?*?Math.PI); context.closePath(); var?gradient?=?context.createRadialGradient(15?+?i*30?+?2,?15?+?j*30?-2?,?13,?15?+?i*30?+2,?15?+?j*30?-2,0) if(me){ gradient.addColorStop(0,?"#0A0A0A"); gradient.addColorStop(1,?"#636366"); }?else?{ gradient.addColorStop(0,?"#D1D1D1"); gradient.addColorStop(1,?"#F9F9F9"); } context.fillStyle?=?gradient; context.fill();}chess.onclick?=?function(e){ var?x?=?e.offsetX; var?y?=?e.offsetY; var?i?=??Math.floor(x?/?30); var?j?=??Math.floor(y?/?30); if(chessBoard[i][j]?==?0){ oneStep(i,?j?,me); if(me){ chessBoard[i][j]?=?1; }?else{ chessBoard[i][j]?=?2; } me?=?!?me; }}
是不是跟著這章內(nèi)容寫了之后網(wǎng)頁內(nèi)容就空白了?
我也出現(xiàn)了同樣的錯誤
舉報(bào)
"AlphaGO"我要和你下五子棋,教程帶你實(shí)現(xiàn)五子棋AI
1 回答wins[i][j][k]不就會越界了嗎?
2 回答wins[i][j][k]這個不是在贏法算法里面已經(jīng)全部為true了
1 回答點(diǎn)(U,V)得到的怎么是wins[i][j][k]=true;這種贏法五子連珠的第一個點(diǎn)
1 回答chessBoard[i][j] == 0 報(bào)Uncaught TypeError: Cannot read property 'NaN' of undefined
1 回答老師為什么j<11
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-04-02
這塊沒有錯,出現(xiàn)了undefine,可能是索引錯了或者沒有初始化,你可以再檢查下前面的代碼。
或者把代碼貼上來看看。
2020-08-18
2020-08-18
2016-10-18
是不是跟著這章內(nèi)容寫了之后網(wǎng)頁內(nèi)容就空白了?
2016-06-23
我也出現(xiàn)了同樣的錯誤