怎样创建两个数组来记录二维数组中空白格子的索引位置。
时间: 2024-03-14 14:45:36 浏览: 66
可以按照以下代码来创建两个数组来记录二维数组中空白格子的索引位置:
```
int[] arrayI = new int[16]; // 创建一个长度为16的int类型数组arrayI,用于记录空白格子的i索引位置
int[] arrayJ = new int[16]; // 创建一个长度为16的int类型数组arrayJ,用于记录空白格子的j索引位置
int w = 0; // 记录空白格子的个数
for (int i = 0; i < datas.length; i++) {
for (int j = 0; j < datas[i].length; j++) {
if (datas[i][j] == 0) { // 如果当前元素是0,说明是空白格子
arrayI[w] = i; // 将i索引位置存入arrayI数组中
arrayJ[w] = j; // 将j索引位置存入arrayJ数组中
w++; // 空白格子的个数加1
}
}
}
```
这段代码中,首先创建了两个长度为16的int类型数组`arrayI`和`arrayJ`,用于记录空白格子的i和j索引位置。然后遍历二维数组`datas`,如果当前元素是0,说明是空白格子,将其i和j索引位置存入`arrayI`和`arrayJ`数组中,并将空白格子的个数加1。这样,遍历完整个二维数组之后,`arrayI`和`arrayJ`数组中就存储了所有空白格子的i和j索引位置了。
相关问题
public void generatorNum() { // 1. 创建两个数组, 准备记录二维数组中空白格子 i 和 j 的索引位置. int[] arrayI = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; int[] arrayJ = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; int w = 0; // 2. 遍历二维数组, 取出每一个元素, 并判断当前元素是否是空白格式 (判断是否是0) for (int i = 0; i < datas.length; i++) { for (int j = 0; j < datas[i].length; j++) { if (datas[i][j] == 0) { // 3. 是0的话, 将索引存入arrayI和arrayJ数组中. arrayI[w] = i; arrayJ[w] = j; w++; } } } // 4. 如果w变量记录的不是0, 代表数组中还有空白的位置, 就可以产生新的数字方块. if (w != 0) { Random r = new Random(); int index = r.nextInt(w); int x = arrayI[index]; int y = arrayJ[index]; datas[x][y] = 2; }
这段代码是用于生成2048游戏中的新数字方块的,其中:
1. 创建了两个数组arrayI和arrayJ来记录二维数组中空白格子的索引位置。
2. 遍历二维数组,判断当前元素是否是空白格式(是否是0),如果是则将其索引存入arrayI和arrayJ数组中。
3. 如果数组中还有空白的位置,则利用Random类产生一个随机数,根据这个随机数确定一个空白格子的索引位置,然后在该位置生成一个新的数字方块(默认为2)。
4. 如果w变量记录的不是0,说明数组中仍有空白的位置,就可以继续生成新的数字方块。
阅读全文