java - Android 游戏 - 尝试创建数组失败?

标签 java android arrays object grid

我目前正在开始了解 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/

相关文章:

java - 当值为 Treemap 且 Treemap 中的数据增加到 10K 时,Ignite 缓存调用更新非常慢

java - volatile 和 static 关键字有什么区别?

windows - "Android Create"在 Windows 7 中调用失败 - 缺少 JDK

android - 在 AndroidManifest.xml 中哪里添加 Intent 过滤器?

javascript - 与多层数组匹配字符串

C# 进阶 String.Split

c - 动态数组的大小

Java异常抛出内省(introspection)

java - 如何在 Windows 10 中设置 Javacc

android - 安装错误 - D/InstallAppProgress() : Installation error code: -25