我正在启动一个简单的项目,在该项目中,用户对计算机玩《战舰》版本。我现在想简单地打印游戏板。但是,将板初始化为由网格单元组成的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;
}
}
答案 0 :(得分:2)
您只创建了数组,没有创建其中的单个单元格。
要这样做,请在您的循环中进行
:gameBoard[x][y] = new grid();
答案 1 :(得分:0)
您必须初始化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("");
}
答案 2 :(得分:0)
那是因为您在初始化后忘记初始化2d网格数组对象。 添加以下代码行:
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
gameboard[i][j] = new grid();