这段代码是我正在制作的扫雷游戏板类的基本框架。但是,当我显示电路板时,这只显示数组的第一行。我已经看了这段代码这么久了,看不出二维数组哪里出了问题。感谢任何帮助
public class Board {
private Cell[][] cells;
public Board(PApplet p, int rows, int columns, double bombChance) {
cells = new Cell[rows][columns];
for (int r = 0; r < cells.length; r++) {
for (int c = 0; c < cells[r].length; c++) {
double randomSeed = Math.random();
if (randomSeed < bombChance) {
cells[r][c] = new BombCell(p);
} else {
cells[r][c] = new SafeCell(p);
}
}
}
}
public void display() {
double tempX = 0;
double tempY = 0;
double size = 50;
for (int r = 0; r < cells.length; r++) {
for (int c = 0; c < cells[r].length; c++) {
cells[r][c].display(tempX, tempY, size);
tempX += 50;
}
tempY += 50;
}
}
}
最佳答案
当您开始渲染下一行时,您似乎无法重置 tempX
。
这可能会解决您的问题:
public void display() {
double tempX = 0;
double tempY = 0;
double size = 50;
for (int r = 0; r < cells.length; r++) {
for (int c = 0; c < cells[r].length; c++) {
cells[r][c].display(tempX, tempY, size);
tempX += 50;
}
tempY += 50;
tempX = 0; // <-------------- look here
}
}
关于Java二维数组仅按预期工作第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42628184/