Сначала думал дело в цвете ибо надо точно то же цвет. скопипастил с готового решения цвета. Теперь при запуске совпадение идеальное но Валя не пропускает. И да мне кажется немного неверным точное следование цветам если их никто не дает.(т.к. особо новому это нас не научит а времени по сравнению и подбору сожрет кучу.)
package com.javarush.games.game2048;
import com.javarush.engine.cell.*;
public class Game2048 extends Game {
private final static int SIDE = 4;
private int[][] gameField = new int[SIDE][SIDE];
private void testMatrix(){
int count =0;
for (int x=0; x<SIDE; x++) {
for (int y = 0; y < SIDE; y++) {
count++;
if ((int) Math.pow(2, count) <= 2048) {
gameField[y][x] =(int) Math.pow(2, count);}
else {
count=0;
gameField[y][x]= count;
}
}
}}
public void initialize(){
setScreenSize(SIDE, SIDE);
createGame();
drawScene();
}
private void createGame(){
}
private void drawScene(){
testMatrix();
for (int x=0; x<SIDE; x++) {
for (int y = 0; y < SIDE; y++) {
setCellColoredNumber(y, x, gameField[y][x]);
}
}
}
private void createNewNumber(){
int x = getRandomNumber(SIDE),y = getRandomNumber(SIDE);
int z = getRandomNumber(10);
if (gameField[y][x]==0){
if (z==9) gameField[y][x]=4;
else gameField[y][x]=2;
}
else createNewNumber();
}
private void setCellColoredNumber(int x, int y, int value){
Color newColor = getColorByValue(value);
String newValue = Integer.toString(value);
if (value==0) setCellValueEx(x, y, newColor, "");
else setCellValueEx(x, y, newColor, newValue );
}
private Color getColorByValue(int value){
switch (value) {
case 0:
return Color.WHITE;
case 2:
return Color.PLUM;
case 4:
return Color.SLATEBLUE;
case 8:
return Color.DODGERBLUE;
case 16:
return Color.DARKTURQUOISE;
case 32:
return Color.MEDIUMSEAGREEN;
case 64:
return Color.LIMEGREEN;
case 128:
return Color.DARKORANGE;
case 256:
return Color.SALMON;
case 512:
return Color.ORANGERED;
case 1024:
return Color.DEEPPINK;
case 2048:
return Color.MEDIUMVIOLETRED;
default:
return Color.NONE;
}
}
}