Собственно реализовал несколько уровней в игре (костыльно, но хоть как-то). На локалке работает, а вот в браузере получается какая-то дичь.
Уровень 2 в браузере (чи шо?)
![]()
private static int SIDE = 20;
private static final String MINE = "\uD83D\uDCA3";
private static final String FLAG = "\uD83D\uDEA9";
private GameObject[][] gameField = new GameObject[SIDE][SIDE]; <- ПОЛЕ ИЗНАЧАЛЬНО 20х20
private int countMinesOnField = 0;
private int countFlags = 0;
private int countClosedTiles = 0;
private int score = 0;
private int level = 1;
private boolean isGameStopped;
private boolean isFirstClick;
private boolean isEndGame;
@Override
public void initialize() {
setScreenSize(SIDE, SIDE);
createGame();
countMineNeighbors();
}
private void createGame() {
isFirstClick = true;
if(level == 1) {
SIDE = 9;
} else if(level == 2) {
SIDE = 15;
} else {
SIDE = 20;
}
countClosedTiles = SIDE * SIDE;
for (int y = 0; y < SIDE; y++) { <- ГЕНЕРИМ АКТИВНОЕ ПОЛЕ В ЗАВИСИМОСТИ ОТ УРОВНЯ
for (int x = 0; x < SIDE; x++) {
int rnd = getRandomNumber(10);
if (rnd == 1 || (level == 3 && rnd == 2)) {
gameField[y][x] = new GameObject(x, y, true);
countMinesOnField++;
} else {
gameField[y][x] = new GameObject(x, y, false);
}
setCellColor(x, y, Color.LIGHTGRAY);
setCellValue(x,y, "");
}
}
countFlags = countMinesOnField;
countMineNeighbors();
for (int y = SIDE; y < 20; y++) { <- ОСТАЛЬНОЕ ЗАПОЛНЯЕМ ЧЕРНЫМ ЦВЕТОМ
for (int x = SIDE; x < 20; x++) {
setCellColor(x, y, Color.BLACK);
setCellValue(x, y, "");
}
}
}
Уровень 2 на локалке