public class Game2048 extends Game {
private static final int SIDE = 4;
private int[][] gameField = new int[SIDE][SIDE];//{
//{0,0,0,0},
//{0,0,0,0},
//{0,0,0,0},
//{0,0,0,0}};
//{2,4,8,16},
//{32,64,128,256},
//{512,1024,2048,0},
//{2,4,8,16}};
private void drawScene(){
for (int i = 0; i < gameField.length; i++){
for(int j = 0; j < gameField[i].length; j++){
setCellColoredNumber(j, i, gameField[j][i]);
}
}
}
@Override
public void initialize() {
setScreenSize(SIDE,SIDE);
createGame();
drawScene();
}
private void createGame(){
createNewNumber();
createNewNumber();
}
private void createNewNumber() {
while (true) {
int x = getRandomNumber(SIDE);
int y = getRandomNumber(SIDE);
int z = getRandomNumber(10);
if (z < 9 && gameField[x][y] == 0) {
gameField[x][y] = 2;
break;
} else if (z == 9 && gameField[x][y] == 0) {
gameField[x][y] = 4;
break;
}
}
}
private Color getColorByValue(int value){
Color color = null;
if (value == 0) color = Color.SILVER;
if (value == 2) color = Color.WHITE;
if (value == 4) color = Color.AQUA;
if (value == 8) color = Color.BLUE;
if (value == 16) color = Color.ROSYBROWN;
if (value == 32) color = Color.AQUAMARINE;
if (value == 64) color = Color.YELLOW;
if (value == 128) color = Color.DIMGRAY;
if (value == 256) color = Color.LAVENDER;
if (value == 512) color = Color.LIGHTSTEELBLUE;
if (value == 1024) color = Color.GRAY;
if (value == 2048) color = Color.RED;
return color;
}
private void setCellColoredNumber(int x, int y, int value){
if (value == 0) setCellValueEx(y, x, getColorByValue(value),"");
else setCellValueEx(y, x, getColorByValue(value),String.valueOf(value));
}
package com.javarush.games.game2048;
import com.javarush.engine.cell.*;
public class Game2048 extends Game {
private static final int SIDE = 4;
private int[][] gameField = new int[SIDE][SIDE];//{
//{0,0,0,0},
//{0,0,0,0},
//{0,0,0,0},
//{0,0,0,0}};
//{2,4,8,16},
//{32,64,128,256},
//{512,1024,2048,0},
//{2,4,8,16}};
private void drawScene(){
for (int i = 0; i < gameField.length; i++){
for(int j = 0; j < gameField[i].length; j++){
setCellColoredNumber(j, i, gameField[j][i]);
}
}
}
@Override
public void initialize() {
setScreenSize(SIDE,SIDE);
createGame();
drawScene();
}
private void createGame(){
createNewNumber();
createNewNumber();
}
private void createNewNumber() {
while (true) {
int x = getRandomNumber(SIDE);
int y = getRandomNumber(SIDE);
int z = getRandomNumber(10);
if (z < 9 && gameField[x][y] == 0) {
gameField[x][y] = 2;
break;
} else if (z == 9 && gameField[x][y] == 0) {
gameField[x][y] = 4;
break;
}
}
}
private Color getColorByValue(int value){
Color color = null;
if (value == 0) color = Color.SILVER;
if (value == 2) color = Color.WHITE;
if (value == 4) color = Color.AQUA;
if (value == 8) color = Color.BLUE;
if (value == 16) color = Color.ROSYBROWN;
if (value == 32) color = Color.AQUAMARINE;
if (value == 64) color = Color.YELLOW;
if (value == 128) color = Color.DIMGRAY;
if (value == 256) color = Color.LAVENDER;
if (value == 512) color = Color.LIGHTSTEELBLUE;
if (value == 1024) color = Color.GRAY;
if (value == 2048) color = Color.RED;
return color;
}
private void setCellColoredNumber(int x, int y, int value){
if (value == 0) setCellValueEx(y, x, getColorByValue(value),"");
else setCellValueEx(y, x, getColorByValue(value),String.valueOf(value));
}
}