我正在使用JavaScript和HTML5畫布編寫簡單的蛇遊戲。 我有保持蛇塊這樣的多維數組:在javascript中查找另一個多維數組中的數組
snake=[[1,1],[1,2]];
並使用(snake.indexOf([i],[j])!=-1
)將它放在arrayMap然後繪製arrayMap在畫布上。
for (var i = 0; i < blocksHeightCount; i++) {
for (var j = 0; j < blocksWidthCount; j++) {
if ((snake.indexOf(i,j)!=-1)||
(walls.indexOf(i,j)!=-1)||
(foods.indexOf(i,j)!=-1)) {
arrayMap[i][j]=1;
} else {
arrayMap[i][j]=0;
}
}
}
for (var i = 0; i < blocksHeightCount; i++) {
for (var j = 0; j < blocksWidthCount; j++) {
Block = arrayMap[i][j];
if (Block!=0){
ctx.fillStyle = (Block != 9) ? colors[Block]
: "#bdc3c7";
ctx.fillRect(j * cubeWidth, i * cubeHeight
, cubeWidth-.4,cubeHeight-.4);
}
}
}
問題是indexOf
當我設置數組時它不工作! 它工作正常,當我設置indexOf(「我,j」),但我需要它是數組。
請幫助,THX
[i],[j]是不正確的語法。也許你的意思是'snake [i] [j] .indexOf(someInt)' – mplungjan 2014-08-27 13:22:19
嘗試將其稱爲'indexOf([i,j])' – webNeat 2014-08-27 13:23:03
注意:考慮通過從一個空數組開始設置arrayMap點,然後遍歷蛇,牆,食物並在arrayMap中設置包含點;所以你不要搜索網格中的每一個點的所有三個數組 - 並且根本不需要indexOf :-) – fast 2014-08-27 13:26:56