我目前正在开始了解 Java。因此,当我尝试开发一些扫雷应用程序时,我注意到,当尝试将坐标添加到“Mines[]”数组时,调试窗口会打开,并且我的应用程序不会继续显示预期的雷区。
这就是我的代码:
package com.ochs.minesweeper;
public class MineField {
public Mine[] mines;
public MineField(int xMines, int yMines) {
mines = new Mine[xMines*yMines];
int xCounter = 0;
int yCounter = 0;
for(int i = 0; i < yMines; i++) {
for(int j = 0; j < xMines; j++) {
mines[i*j].setX(xCounter);
mines[i*j].setY(yCounter);
xCounter += 100;
}yCounter += 100;
}
}
}
即使我只是尝试这样的事情:
for(int i = 0; i < xMines*yMines; i++) {
mines[i].setX(2);
}
或者类似的东西,我似乎无法使用数组中的 for 循环变量来处理...
有人知道我做错了什么吗?我只希望我的 MineField 拥有 Mine[] 数组。这些地雷都是在 for 循环中使用不同的坐标创建的,以便它们可以显示在我的表面 View 上的网格中。 有人有想法吗?或者也许是另一种解决方案,如何在我的示例矿井中创建简单的对象网格?
提前致谢!
最佳答案
为什么不使用二维数组?您可以定义 Mine[][] 地雷
,然后在循环中:
for(int i = 0; i < yMines; i++) {
for(int j = 0; j < xMines; j++) {
mines[i][j].setX(xCounter);
mines[i][j].setY(yCounter);
xCounter += 100;
}yCounter += 100;
}
关于java - Android 游戏 - 尝试创建数组失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16256591/