помогите пожалуйста, не проходит предпоследний пункт.
private void moveLeft(){
int count = 0;
for (int i = 0; i < SIDE; i++) {
if(compressRow(gameField[i])) count++;
if(mergeRow(gameField[i])) count++;
if(compressRow(gameField[i])) count++;
}
if(count > 0) createNewNumber();
}
package com.javarush.games.game2048;
import com.javarush.engine.cell.*;
import java.util.Arrays;
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[y][x]);
}
}
}
private void createNewNumber(){
int x, y;
do {
x = getRandomNumber(SIDE);
y = getRandomNumber(SIDE);
} while (gameField[y][x] != 0);
if (getRandomNumber(10) == 9)
gameField[y][x] = 4;
else gameField[y][x] = 2;
}
private Color getColorByValue(int value){
if(value == 2) return Color.PINK;
if(value == 4) return Color.PURPLE;
if(value == 8) return Color.BLUE;
if(value == 16) return Color.AQUA;
if(value == 32) return Color.GREEN;
if(value == 64) return Color.LIGHTGREEN;
if(value == 128) return Color.ORANGE;
if(value == 256) return Color.ORANGERED;
if(value == 512) return Color.RED;
if(value == 1024) return Color.DARKRED;
if(value == 2048) return Color.GOLD;
else return Color.WHITE;
}
private void setCellColoredNumber(int x, int y, int value){
if(value == 0)setCellValueEx(x, y, getColorByValue(value), "");
else setCellValueEx(x, y, getColorByValue(value), String.valueOf(value));
}
private boolean compressRow(int[] row){
boolean test = false;
for (int j = 0; j < row.length; j++) {
for (int i = 0; i < row.length - 1; i++) {
if (row[i] == 0) {
row[i] = row[i + 1];
row[i + 1] = 0;
test = true;
}
}
}
return test;
}
private boolean mergeRow(int[] row){
boolean test = false;
for (int i = 0; i < row.length - 1; i++) {
if(row[i] == row[i + 1] && row[i] != 0 && row[i + 1] != 0){
row[i] += row[i + 1];
row[i + 1] = 0;
test = true;
}
}
return test;
}
@Override
public void onKeyPress(Key key) {
switch (key){
case LEFT:
moveLeft();
drawScene();
break;
case RIGHT:
moveRight();
drawScene();
break;
case UP:
moveUp();
drawScene();
break;
case DOWN:
moveDown();
drawScene();
break;
}
}
private void moveLeft(){
int count = 0;
for (int i = 0; i < SIDE; i++) {
if(compressRow(gameField[i])) count++;
if(mergeRow(gameField[i])) count++;
if(compressRow(gameField[i])) count++;
}
if(count > 0) createNewNumber();
}
private void moveRight(){}
private void moveUp(){}
private void moveDown(){}
}