我的chessBoard的值有問題
var chessBoard=[];
for(var i=0;i<16;i++){
?chessBoard[i]=[];
?for(var j=0;j<16;j++){
??chessBoard[i][j]=0;
?}
}
var chess = document.getElementById('canvas1');
var context = chess.getContext('2d');
context.strokeStyle = '#eee';
var logo = new Image();
logo.src = './image/beijing.png';
logo.onload = function() {
??? context.drawImage(logo, 0, 0, 405, 405);
??? drawLine();
??? oneStep(2, 2, true);
??? oneStep(3, 3, false);
}
function oneStep(i, j, me) {
??? context.beginPath();
??? context.arc(15 + i * 25, 15 + j * 25, 10, 0, 2 * Math.PI);
??? var gradient = context.createRadialGradient(15 + i * 25 + 2, 15 + j * 25 - 2, 6, 15 + i * 25 + 2, 15 + j * 25 - 2, 3);
??? if (me) {
??????? gradient.addColorStop(0, '#0a0a0a');
??????? gradient.addColorStop(1, '#ccc');
??? } else {
??????? gradient.addColorStop(0, '#ddd');
??????? gradient.addColorStop(1, '#fff');
??? }
??? context.fillStyle = gradient;
??? context.closePath();
??? context.fill();
}
/*這個函數用來畫棋盤*/
function drawLine() {
??? for (var i = 0; i < 16; i++) {
??????? context.moveTo(15 + 25 * i, 15);
??????? context.lineTo(15 + 25 * i, 390);
??????? context.moveTo(15, 15 + 25 * i);
??????? context.lineTo(390, 15 + 25 * i);
??????? context.stroke();
??? }
}
chess.onclick=function(){
?console.log(chessBoard[i][j]);
}
二維數組打印的時候就會提示qizi.js:50 Uncaught TypeError: Cannot read property '16' of undefined不管這個數字設置多大都會出錯,有遇到過同樣問題的嗎?順便求解答
2016-07-29
chess.onclick=function(){
?console.log(chessBoard[i][j]);
}
這個代碼有問題,點擊的時候都沒有去獲取鼠標點擊的坐標值offsetX和offsetY。。
2016-04-02
for循環中i,j《15,因為i,j是從0開始循環的,0~14正好十五條線
2016-04-02
chess.onclick=function(){
?console.log(chessBoard[i][j]);
}
里面的‘i’跟‘j’經過for循環后已經變成16了。而chessBoard最大是chessBoard[15][15];數組越界了