1.Значение 0 не должно отображаться на игровом поле. 2.В методе drawScene() должен быть заменен вызов метода setCellColor(int, int, Color) на setCellColoredNumber(int, int, int), чтобы значения и цвета плиток игрового поля на экране соответствовали значениям в матрице gameField. код, в котором мне кажется проблема
private void drawScene(){
        for(int i = 0; i <4; i++){
            for(int j = 0; j <4; j++){
                if(gameField[i][j] != 0){
                    setCellColoredNumber(j, i, gameField[i][j]);
                }
            }
        }
    }
полный код
package com.javarush.games.game2048;
import com.javarush.engine.cell.*;
import com.javarush.engine.cell.Game;

public class Game2048 extends Game {

    private static final int SIDE = 4;
    Color[] colors = Color.values();
    private int[][] gameField = new int[SIDE][SIDE];

    @Override
    public void initialize(){
        setScreenSize(SIDE,SIDE);
        createGame();
        gameField[1][0] = 8;
        drawScene();
    }


    private void setCellColoredNumber(int x, int y, int val){
        Color col = getColorByValue(val);
        String str = Integer.toString(val);
        setCellValueEx(x, y, col, str);
    }

    private Color getColorByValue(int val){
        if(val == 2){
            return Color.PURPLE;
        }
        if(val == 4){
            return Color.BLUE;
        }
        if(val == 8){
            return Color.CYAN;
        }
        if(val == 16){
            return Color.GREEN;
        }
        if(val == 32){
            return Color.YELLOW;
        }
        if(val == 64){
            return Color.ORANGE;
        }
        if(val == 128){
            return Color.RED;
        }
        if(val == 256){
            return Color.MAROON;
        }
        if(val == 512){
            return Color.PINK;
        }
        if(val == 1024){
            return Color.BEIGE;
        }
        if(val == 2048){
            return Color.WHITE;
        }
        else{
            return Color.BROWN;
        }
    }

    private void createGame(){
        createNewNumber();
        createNewNumber();
    }

    private void drawScene(){
        for(int i = 0; i <4; i++){
            for(int j = 0; j <4; j++){
                if(gameField[i][j] != 0){
                    setCellColoredNumber(j, i, gameField[i][j]);
                }
            }
        }
    }

    private void createNewNumber(){
        int i = getRandomNumber(SIDE);
        int j = getRandomNumber(SIDE);
        int val = getRandomNumber(10);
        while(gameField[i][j] != 0){
            i = getRandomNumber(SIDE);
            j = getRandomNumber(SIDE);
        }
        if(val == 0){
            gameField[i][j] = 4;
        }
        else{
            gameField[i][j] = 2;
        }
    }
}