亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我的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不管這個數字設置多大都會出錯,有遇到過同樣問題的嗎?順便求解答

正在回答

3 回答

chess.onclick=function(){
?console.log(chessBoard[i][j]);
}

這個代碼有問題,點擊的時候都沒有去獲取鼠標點擊的坐標值offsetX和offsetY。。

0 回復 有任何疑惑可以回復我~

for循環中i,j《15,因為i,j是從0開始循環的,0~14正好十五條線

0 回復 有任何疑惑可以回復我~
#1

yuweia 提問者

我的是16根線啊
2016-04-02 回復 有任何疑惑可以回復我~
#2

qq_指月指_0 回復 yuweia 提問者

能看一下你的群不代碼嗎?
2016-04-05 回復 有任何疑惑可以回復我~

chess.onclick=function(){
?console.log(chessBoard[i][j]);
}

里面的‘i’跟‘j’經過for循環后已經變成16了。而chessBoard最大是chessBoard[15][15];數組越界了

0 回復 有任何疑惑可以回復我~
#1

yuweia 提問者

但是我改成12.10.2.他都會報這個錯誤。提示這個未定義
2016-04-02 回復 有任何疑惑可以回復我~
#2

BillLe 回復 yuweia 提問者

應該是chessBoard最大是chessBoard[16][16]了
2016-04-07 回復 有任何疑惑可以回復我~
#3

BillLe 回復 yuweia 提問者

for循環沒學好啊。你畫的是16跟線沒錯,但for循環結束時i = 16了
2016-04-07 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我的chessBoard的值有問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號