gpt4 book ai didi

java - 问题 - For 循环仅填充二维数组的第一个位置而不是整个二维数组

转载 作者:行者123 更新时间:2023-12-01 17:45:33 26 4
gpt4 key购买 nike

所以我想替换二维数组中的一些元素。这是我已经创建的网格:

Row 0: OOxxxOx
Row 1: xxxxxxx
Row 2: xOxOOxO
Row 3: xxxxxOO
Row 4: xxOxOxO
Row 5: OxOxxxO

我想用“.”替换所有“O”,我称之为炸弹爆炸。当炸弹“爆炸”时,元素的左、右、上、下都会变成“。”。以及。这是我的“炸弹爆炸”代码:(try catch 在那里,所以即使数组索引超出范围,我的代码也可以继续)

          try {

for (int i = 0; i < grid.length; i++) {

for (int j = 0; j < grid[i].length; j++) {
if (grid[i][j].equals(oldBomb)) {
grid[i][j] = empty;
grid[i][j + 1] = empty;
grid[i][j - 1] = empty;
grid[i + 1][j] = empty;
grid[i - 1][j] = empty;
}
}
}
} catch (ArrayIndexOutOfBoundsException e) {
e.getMessage();
}

代码会给我这个输出(顶部的网格是我之前创建的网格):

Row 0: OxxOxxO
Row 1: OxxOOOO
Row 2: OxxOOxO
Row 3: OOxxxOx
Row 4: OxxOOxx
Row 5: OOxOOOx

Row 0: ..xOxxO
Row 1: OxxOOOO
Row 2: OxxOOxO
Row 3: OOxxxOx
Row 4: OxxOOxx
Row 5: OOxOOOx

正如您所看到的,只有第一颗炸弹爆炸,而其他炸弹则没有爆炸。请任何人帮助我为什么只有一个元素发生变化而不是其他元素?

非常感谢。

最佳答案

尝试在这里运行:https://onlinegdb.com/Bkg7lCDqLI

 import java.io.*;
public class Main
{
public static void main(String[] args) {


char playground[][]={{'0','0','x','x','x','0','x'},
{'x','x','x','x','x','x','x'},
{'x','0','x','0','0','0','0'},
{'x','x','x','x','x','0','0'},
{'x','x','0','x','0','x','0'},
{'0','x','0','x','x','x','0'}};
System.out.println("Current status of playground");
int rows=6,cols=7;
for(int i=0;i<rows;i++){

for(int j=0;j<cols;j++){
System.out.print(playground[i][j]+" ");
}
System.out.println();
}
System.out.println("Placing bombs now ...boomm");
for(int i=0;i<rows;i++){

for(int j=0;j<cols;j++){
if(playground[i][j]=='0'){
playground[i][j]='.';

if (!(i - 1 < 0) && playground[i - 1][j]=='x') {
playground[i - 1][j]='.';
}
if (!(i + 1 > rows-1) && playground[i + 1][j]=='x') {
playground[i + 1][j]='.';
}
if (!(j - 1 < 0) && playground[i][j-1]=='x') {
playground[i][j - 1]='.';
}
if (!(j + 1 > cols-1) && playground[i][j+1]=='x') {
playground[i][j + 1]='.';
}

}
}
};
System.out.println("After bomb blast");
for(int i=0;i<rows;i++){

for(int j=0;j<cols;j++){
System.out.print(playground[i][j]+" ");
}
System.out.println();
}


}

}

关于java - 问题 - For 循环仅填充二维数组的第一个位置而不是整个二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60872203/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com