Проверка ругается на последний пункт:
В методе drawScene() должен быть заменен вызов метода setCellColor(int, int, Color) на setCellColoredNumber(int, int, int), чтобы значения и цвета плиток игрового поля на экране соответствовали значениям в матрице gameField.
Хотя все условия соблюдены и всё работает.
package com.javarush.games.game2048;
import com.javarush.engine.cell.*;
public class Game2048 extends Game {
private static final int SIDE = 4;
@Override
public void initialize() {
setScreenSize(SIDE, SIDE);
createGame();
drawScene();
}
private int[][] gameField = new int[SIDE][SIDE];
private void createGame() {
createNewNumber();
createNewNumber();
}
private void drawScene() {
for (int i = 0; i < SIDE; i++) {
for (int j = 0; j < SIDE; j++) {
setCellColoredNumber(i, j, gameField[i][j]);
}
}
}
private void createNewNumber(){
int nCX = getRandomNumber(SIDE);
int nCY = getRandomNumber(SIDE);
int cNN = getRandomNumber(10);
if (cNN == 9)
gameField[nCX][nCY] = 4;
else gameField[nCX][nCY] = 2;
}
private Color getColorByValue (int value) {
switch (value) {
case 0:
return Color.WHITE;
case 2:
return Color.LIGHTPINK;
case 4:
return Color.PURPLE;
case 8:
return Color.LIGHTBLUE;
case 16:
return Color.CYAN;
case 32:
return Color.GREEN;
case 64:
return Color.LIGHTGREEN;
case 128:
return Color.LIGHTGOLDENRODYELLOW;
case 256:
return Color.PEACHPUFF;
case 512:
return Color.ORANGE;
case 1024:
return Color.INDIGO;
case 2048:
return Color.DARKMAGENTA;
}
return Color.WHITE;
}
private void setCellColoredNumber (int x, int y, int value){
if (value == 0){
setCellValueEx(x, y, getColorByValue(value), "");
return;
}
setCellValueEx(x, y, getColorByValue(value), String.valueOf(value));
}
}