Да, валидатор ругается на неработоспособность метода createNewNumber() (смотри код). В отличие от тех, кто уже задавал такие вопросы я реализовал свой метод немного иначе. Если клетка занята, то в цикле ищется новая случайная свободная клетка. И так пока не найдется подходящая клетка.
В чем ошибка? Ячейка заполняется, причем только пустая, число либо 2, либо 4, цикл прерывается из за boolean notPlaced.
package com.javarush.games.game2048;
import com.javarush.engine.cell.*;
public class Game2048 extends Game{
private static final int SIDE = 4;
private int[][] gameField = new int[SIDE][SIDE];
public static void main(String[] args){
}
private void drawScene(){
for (int i = 0; i < SIDE; i++){
for (int b = 0; b < SIDE; b++){
setCellColor(i, b, Color.PINK);
}
}
}
private void createNewNumber(){
int x = getRandomNumber(SIDE);
int y = getRandomNumber(SIDE);
int c = getRandomNumber(10) == 9 ? 2 : 4;
boolean notPlaced = true;
while (notPlaced){
if (gameField[x][y] == 0){
gameField[x][y] = c;
notPlaced = false;
}
else{
x = getRandomNumber(SIDE);
y = getRandomNumber(SIDE);
}
}
}
private void createGame(){
createNewNumber();
createNewNumber();
}
public void initialize(){
setScreenSize(SIDE, SIDE);
createGame();
drawScene();
}
}