private void compressTiles(Tile[] tiles) {
for (int i = 0; i < tiles.length - 1; i++) {
if(tiles[i].isEmpty()) {
if(!tiles[i+1].isEmpty()) {
changeValues(tiles[i], tiles[i+1]);
} else if(i + 2 <= tiles.length) {
if(!tiles[i+2].isEmpty()) {
changeValues(tiles[i], tiles[i+2]);
} else if(i + 3 <= tiles.length) {
if(!tiles[i+3].isEmpty()) {
changeValues(tiles[i], tiles[i+3]);
}
}
}
}
}
mergeTiles(tiles);
}
private void changeValues(Tile a, Tile b) {
a.value = b.value;
b.value = 0;
}
private void mergeTiles(Tile[] tiles) {
for (int i = 0; i < tiles.length - 1; i++) {
if(tiles[i].value == tiles[i+1].value) {
tiles[i].value += tiles[i+1].value;
tiles[i+1].value = 0;
score += tiles[i].value;
if(tiles[i].value > maxTile) {
maxTile = tiles[i].value;
}
compressTiles(tiles);
}
}
}package com.javarush.task.task35.task3513;
public class Main {
public static void main(String[] args) {
}
}