Пробовал делать через цикл, через рекурсию, без проверки на ноль
всегда вылазит эта ошибка
package com.javarush.games.game2048;
import com.javarush.engine.cell.*;
public class Game2048 extends Game {
private static final int SIDE = 4;
private int[][] gameField;
@Override
public void initialize() {
//задали размер поля 7x9 клеток
setScreenSize(SIDE, SIDE);
showGrid(true);
createGame();
drawScene();
createNewNumber();
createNewNumber();
}
private void createGame() {
gameField = new int[SIDE][SIDE];
createNewNumber();
createNewNumber();
}
private void drawScene(){
for (int i = 0; i < SIDE; i++) {
for (int j = 0; j < SIDE; j++) {
setCellColor(i, j, Color.BLUE);
}
}
}
private void createNewNumber(){
int x = getRandomNumber(SIDE);
int y = getRandomNumber(SIDE);
int ver = getRandomNumber(10) == 5 ? 4 : 2;
while(true){
if(gameField[x][y] == 0){
gameField[x][y] = ver;
break;
}
x = getRandomNumber(SIDE);
y = getRandomNumber(SIDE);
}
/*if(gameField[x][y] == 0){
gameField[x][y] = ver;
} else {
createNewNumber();
}*/
}
/* Требования: 5 часть
1. В классе Game2048 должен быть создан приватный метод void createNewNumber().
2. Метод createNewNumber() должен два раза вызывать getRandomNumber(SIDE) и один раз getRandomNumber(10).
3. В методе createNewNumber() должно быть присвоено новое значение 2 или 4 (с вероятностью 90% и 10%
соответственно) для случайной свободной ячейки матрицы gameField.
4. В методе createGame() должен быть вызван метод createNewNumber() 2 раза.*/
/* Требования: 4 часть
1. В классе Game2048 должен быть создан приватный метод void drawScene().
2. В методе drawScene() должен быть вызван метод setCellColor(int, int, Color) для каждой клетки.
3. В методе initialize() последним должен быть вызван метод drawScene().
4. Все плитки должны быть раскрашены в один цвеn*/
}