我开始了一个简单的项目,用户在电脑上玩一个版本的战舰。现在,我想简单地打印出游戏板。但是,在将线路板初始化为由网格单元组成的对象的2D数组后,我遇到了一个错误。不像我在类中定义的打印单元格类型,代码只是简单地打印一个“null”的网格。
public class main {
public static void main(String[] args) {
// TODO Auto-generated method stub
grid[][] gameBoard = new grid[9][9];
for (int x = 0; x < 9; x++) {
for (int y = 0; y < 9; y++) {
System.out.print(gameBoard[x][y] + " ");
}
System.out.println("");
}
}
}
public class grid {
public String type;
public String owner;
public boolean positionCalled;
public grid() {
type = "_";
owner = "";
positionCalled = false;
}
public String toString() {
return type;
}
}
发布于 2018-09-23 05:14:59
您只创建了数组,而没有在其中创建单个单元格。
要做到这一点,在你的循环中:
gameBoard[x][y] = new grid();
发布于 2018-09-23 05:16:18
你必须初始化你的grid
,
for (int x = 0; x < 9; x++) {
for (int y = 0; y < 9; y++) {
gameBoard[x][y]=new grid();//initialize the grid
System.out.print(gameBoard[x][y] + " ");
}
System.out.println("");
}
发布于 2018-09-23 05:16:31
这是因为你在初始化之后忘记了初始化2d网格数组对象。添加下面这行代码:
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
gameboard[i][j] = new grid();
https://stackoverflow.com/questions/52460893
复制相似问题