我目前正在創建一個打磚塊(或突破,如突破雅達利)和磚塊即時通訊使用二維數組:我將如何遍歷Java中不同大小的2d數組?
private Brick bricks[][] = new Brick[10][41];
摧毀特定磚(不管是什麼原因,我不得不銷燬)我創建了一個方法:
public void destroyBrick(Brick brick) {
for(int x = 0; x < bricks[x].length; x++) {
for(int y = 0; y < bricks[y].length; y++) {
if (bricks[x][y].equals(brick)) {
bricks[x][y] = null;
}
}
}
}
陣列被創建的方式如下:
for(int j=0; j<bricks[0].length; j++){
for(int i=0; i<bricks.length; i++){
bricks[i][j]=new Brick(game,10,Color.GREEN,j*margin,i*margin);
}
}
現在由於某種原因x的計數器最終達到ES 10和計數器達到0,它崩潰,我不明白爲什麼。
是否有不同的方式迭代2d數組,其列和行的值不同?
note 格式化和我的拼寫如此垃圾的原因是,即時消息寫在應用程序版本。在我可以之前,請隨時糾正任何錯誤或格式錯誤。
這會拋出相同的錯誤,在迭代的稍後(所以x是9,y是40) – Reteras
@Reteras'(9,40)'是一對有效的索引,你確定你的數組已被正確初始化(即磚塊[9]'裏面有一個非'null'數組)? – dasblinkenlight
它的工作表示感謝!現在不用處理空指針,結果是:| – Reteras