"Be sure that the values of the tiles on the game board correspond to the values in the matrix." but they do
package com.codegym.games.game2048;
import com.codegym.engine.cell.*;
public class Game2048 extends Game {
private int[][] gameField = new int[SIDE][SIDE];
private static final int SIDE = 4;
public void initialize(){
setScreenSize(SIDE, SIDE);
createGame();
drawScene();
createNewNumber();
}
private void createGame(){
createNewNumber();
createNewNumber();
}
private void drawScene(){
for (int i = 0;i < SIDE;i++){
for (int y = 0;y < SIDE;y++){
setCellColoredNumber(i,y,gameField[i][y]);
}
}
}
private void createNewNumber() {
int x = getRandomNumber(SIDE);
int y = getRandomNumber(SIDE);
int value;
if (getRandomNumber(10) == 9){
value = 4;
} else {
value = 2;
}
if (gameField[x][y] == 2 || gameField[x][y] == 4){
createNewNumber();
} else {
gameField[x][y] = value;
}
}
private Color getColorByValue(int value){
if (value == 0){
return Color.WHITE;
} else if (value == 2){
return Color.ALICEBLUE;
} else if (value == 4){
return Color.ANTIQUEWHITE;
} else if (value == 8){
return Color.AQUA;
} else if (value == 16){
return Color.AQUAMARINE;
} else if (value == 32){
return Color.AZURE;
} else if (value == 64){
return Color.BEIGE;
} else if (value == 128){
return Color.BISQUE;
} else if (value == 256){
return Color.BLACK;
} else if (value == 512){
return Color.BLANCHEDALMOND;
} else if (value == 1024){
return Color.BLUE;
} else if (value == 2048) {
return Color.BLUEVIOLET;
} else return Color.WHITE;
}
private void setCellColoredNumber(int x, int y, int value){
setCellValueEx(x, y, getColorByValue(value), "");
}
}