java如何使用在for循环内部和外部声明的变量?
我正在使用acm.graphics
库创建ATARI BREAKOUT,并试图访问for循环外的“brick”来删除它。如果没有for循环,我想不出任何其他方法来创建砖块。帮忙
GRect brick = new GRect(brickwidth, brickheight);
for(j = 1; j <= nrows; j++) {
for(i = 0; i < bricksperrow; i++) {
brick.setLocation(i*(brickwidth + brickSep) + 1, brickoffset + j*(brickheight + brickSep));
if(j == 1 || j == 2) {
brick.setColor(Color.RED);
brick.setFilled(true);
}
else if(j == 3 || j == 4) {
brick.setColor(Color.ORANGE);
brick.setFilled(true);
}
else if(j == 5 || j == 6) {
brick.setColor(Color.YELLOW);
brick.setFilled(true);
}
else if(j == 7 || j == 8) {
brick.setColor(Color.GREEN);
brick.setFilled(true);
}
else if(j == 9 || j == 10) {
brick.setColor(Color.CYAN);
brick.setFilled(true);
}
add(brick);
}
}
# 1 楼答案
我猜你想在循环中创建许多砖块
你做错了,每次迭代你只是改变了一块砖的位置。 您需要在每次迭代中创建一个新的砖块,并将其引用保存到某些结构中,最好是[nrows,bricksperrow]维度的矩阵
以下是方法:
通过这种方式,您可以拥有全局砖块矩阵,从中可以删除任何条目