При проверке Машина сообщает, что не выполняются первое и последнее требования:
1. В классе Game2048 должен быть создан приватный метод Color getColorByValue(int value). Он должен возвращать цвет клетки по ее значению (Метод getColorByValue(int) должен возвращать разный цвет для разных значений (0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048)
2. В методе 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;
private int[][] gameField = new int[SIDE][SIDE];
@Override
public void initialize() {
setScreenSize(SIDE, SIDE);
createGame();
drawScene();
}
private void createGame() {
createNewNumber();
createNewNumber();
}
private void drawScene() {
for (int x = 0; x < SIDE; x++) {
for (int y = 0; y < SIDE; y++) {
setCellColoredNumber(x, y, gameField[x][y]);
}
}
}
private void createNewNumber() {
int randomX;
int randomY;
do {
randomX = getRandomNumber(SIDE);
randomY = getRandomNumber(SIDE);
} while (gameField[randomX][randomY] != 0);
gameField[randomX][randomY] = getRandomNumber(10) == 9 ? 4 : 2;
}
private void setCellColoredNumber (int x, int y, int value) {
String valueToString = value == 0 ? "" : String.valueOf(value);
setCellValueEx(x, y, getColorByValue(value), valueToString);
}
private Color getColorByValue(int value) {
switch (value) {
default:
return Color.CORAL;
case 2:
return Color.GOLD;
case 4:
return Color.AQUA;
case 8:
return Color.BEIGE;
case 16:
return Color.AZURE;
case 32:
return Color.BURLYWOOD;
case 64:
return Color.DARKGREY;
case 128:
return Color.FUCHSIA;
case 256:
return Color.HONEYDEW;
case 512:
return Color.GREEN;
case 1024:
return Color.BEIGE;
case 2048:
return Color.DARKVIOLET;
}
}
}
