老師,為什么最后運行不出來?
var?chessBoard?=?[]; var?me?=?true; var?over?=?false; //贏法數(shù)組 var?wins?=?[]; //贏法統(tǒng)計數(shù)組 var?myWin?=?[]; var?computerWin?=?[]; for(var?i?=?0;i?<?15;i++){//?D??ê?·???×ó 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<11;j++){ for(var?k=0;k<5;k++){ wins[i][j+k][count]?=?true; } count++; } } //豎線贏法 for(var?i=0;i<15;i++){ for(var?j=0;j<11;j++){ for(var?k=0;k<5;k++){ wins[j+k][i][count]?=?true; } count++; } } //斜線贏法 for(var?i=0;i<11;i++){ for(var?j=0;j<11;j++){ for(var?k=0;k<5;k++){ wins[i+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[i+k][j-k][count]?=?true; } count++; } } console.log(count); for(var?i?=?0;i<count;i++){ myWin[i]?=?0; computerWin[i]?=?0; } var?chess?=?document.getElementById('chess'); var?context?=?chess.getContext('2d'); context.strokeStyle?=?"#BFBFBF"; var?kongfu?=?new?Image(); kongfu.src="images/kongfu.png"; kongfu.onload?=?function(){ context.drawImage(kongfu,0,0,450,450); drawChessBoard(); } var?drawChessBoard?=?function(){ for(var?i?=?0;i<15;i++){ context.moveTo(15?+?30*i,15); context.lineTo(15+30*i,435); context.stroke(); context.moveTo(15?,15+?30*i); context.lineTo(435,15+30*i); context.stroke(); } } var?oneStep?=?function(i,j,me){ context.beginPath(); context.arc(15?+?30*i,15?+?30*j,13,0,2*Math.PI); context.closePath(); var?gradient?=?context.createRadialGradient(15?+?30*i?+?2,15?+?30*j?-?2,13,15?+?30*i?+?2,15?+?30*j?-?2,0); if(me){ gradient.addColorStop(0,"#0A0A0A"); gradient.addColorStop(1,"#636766"); }else{ gradient.addColorStop(0,"#D1D1D1"); gradient.addColorStop(1,"#F9F9F9"); } context.fillStyle?=?gradient; context.fill(); } chess.onelick?=?function(e){ if(over){ return; } if(!me){ return; } 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); ??chessBoard[i][j]?=?1; ?? ??for(var?k?=0;k<count;k++){ if(wins[i][j][k]){ myWin[k]++; computerWin[k]?=?6; if(myWin[k]?==?5){ window.alert("你贏了!"); over?=?true; } } }if(!over){ me?=?!me; computerAI(); } } } var?computerAI?=?function(){ ????var?myScore?=?[]; ????var?computerScore?=?[]; ????var?max?=?0; ????var?u?=?0,v?=?0; ????for(var?i?=0;i<15;i++){ ???? myScore[i]?=?[]; ???? computerScore[i]?=?[]; ???? for(var?j?=?0;j<15;j++){ ???? myScore[i][j]?=?0; ???? computerScore[i][j]?=?0; ???? } ????} ????for(var?i?=?0;i<15;i++){ ???? for(var?j?=?0,j<15;j++){ ???? if(chessBoard[i][j]?==?0){ ???? for(var?k?=?0;k<count;k++){ ???? if(wins[i][j][k]){ ???? if(myWin[k]?==?1){ ???? myScore[i][j]?+=?200; ???? }else?if(myWin[k]?==?2){ ???? myScore[i][j]?+=?400; ???? }else?if(myWin[k]?==?3){ ???? myScore[i][j]?+=?2000; ???? }else?if(myWin[k]?==?4){ ???? myScore[i][j]?+=?10000; ???? } ???? if(computerWin[k]?==?1){ ???? computerScore[i][j]?+=?220; ???? }else?if(computerWin[k]?==?2){ ???? computerScore[i][j]?+=?420; ???? }else?if(computerWin[k]?==?3){ ???? computerScore[i][j]?+=?2100; ???? }else?if(computerWin[k]?==?4){ ???? computerScore[i][j]?+=?20000; ???? } ???? } ???? } ???? if(myScore[i][j]?>?max){ ???? max?=?myScore[i][j]; ???? u?=?i; ???? v?=?j; ???? }else?if(myScore[i][j]?==?max){ ???? if(computerScore[i][j]?>?computerScore[u][v]){ ???? u?=?i; ???? v?=?j; ???? } ???? } ???? if(computerScore[i][j]?>?max){ ???? max?=?computerScore[i][j]; ???? u?=?i; ???? v?=?j; ???? }else?if(computerScore[i][j]?==?max){ ???? if(myScore[i][j]?>?myScore[u][v]){ ???? u?=?i; ???? v?=?j; ???? } ???? } ???? } ???? } ????} ????oneStep(u,v,false); ????chessBoard[u][v]?=?2; ????for(var?k?=0;k<count;k++){ if(wins[u][v][k]){ computerWin[k]++; myWin[k]?=?6; if(computerWin[k]?==?5){ window.alert("計算機贏了!"); over?=?true; } } }if(!over){ me?=?!me; } }
最后變成了這樣
2016-04-03
同學你好,兩個地方改一下
1、152行,j=0后面的逗號改成分號
2、106行,是chess.onclick