I examined and applied every question but it doesn't still work. (Second to last condition)
package com.codegym.games.game2048;
import com.codegym.engine.cell.*;
public class Game2048 extends Game{
private static final int SIDE=4;
private int[][] gameField = new int[SIDE][SIDE];
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 z = getRandomNumber(10);
int a = getRandomNumber(SIDE);
int b = getRandomNumber(SIDE);
if(z==9){
z = 4;
}else{
z = 2;
}
if(gameField[a][b]!=0){
createNewNumber();
}
else{
gameField[a][b]=z;
}
}
private Color getColorByValue(int value){
if(value==0){return Color.NONE;}
else if(value==2){return Color.GRAY;}
else if(value==4){return Color.PURPLE;}
else if(value==8){return Color.BLUE;}
else if(value==16){return Color.GREEN;}
else if(value==32){return Color.YELLOW;}
else if(value==64){return Color.BROWN;}
else if(value==128){return Color.ORANGE;}
else if(value==256){return Color.RED;}
else if(value==512){return Color.PINK;}
else if(value==1024){return Color.WHITE;}
else {return Color.BLACK;}
}
private void setCellColoredNumber(int x, int y, int value){
if(value > 0){
setCellValueEx(y, x, getColorByValue(value), Integer.toString(value));
}
else{
setCellValueEx(y, x, getColorByValue(value), "");
}
}
@Override
public void initialize(){
setScreenSize(SIDE,SIDE);
createGame();
drawScene();
}
}