- Для конструктора
GameState()
(конструктор по умолчанию):
Измените state = new int[0][0];
на следующее: state = new int[
3
][
3
];
.Таким образом, вы инициализируете массив с емкостью (3) x (3) элементов.
- Для конструктора
GameState(int[][] state, GameState parent)
:
Измените this.state = new int[0][0];
на this.state = new int[
state.length
] [state.length > 0 ? state[0].length : 0
];
Таким образом, вы инициализируете массив с емкостью для
(state.length
) x (state[0].length
или 0
, если state.length
равно 0
) элементов.
Также необходимо выполнить цикл до state.length
с i
и до state[i].length
с j
.
В конструкторе GameState
, например так:
public GameState(int[][] state, GameState parent) {
//initialize this.state to state, this.parent to parent
this.state = new int[state.length][state.length > 0 ? state[0].length : 0];
for (int i = 0; i < state.length; i++){
for (int j = 0; j < state[i].length; j++) {
this.state[i][j] = state[i][j];
}
}
this.parent = parent;
}
Кроме того, в качестве примечания, это не [1, 5, 2, 3, 4, 0, 6, 8, 7]
,
, а [[1, 5, 2], [3, 4, 0], [6, 8, 7]]
.