хочу сделать так, чтоб при попаданию на ячейку без соседних мин, все ячейки открылись по очереди, а не сразу.
идея такая:
клик = > открылась ячейка 1 => подождать секунду => открылась ячейка 2 => ждем секунду => открылась ячейка 3 => ждем секунду.....
но в результате получается что я жду сумму времени, а потом мгновенно открываются все ячейки. подскажите, как правильно это реализовать? (30 строчка)
вот этот метод
@Override
public void onMouseLeftClick(int x, int y) {
if (isGameStopped) restart();
else openTile(x, y);
}
private void openTile(int x, int y) { //открывает ячейки, меняет цвета, рекурсия открытия соседних ячеек, если рядом ноль мин
if (gameField[y][x].isOpen || gameField[y][x].isFlag || isGameStopped) return;
gameField[y][x].isOpen = true;
countClosedTiles--;
if (gameField[y][x].isMine) {
setCellValue(x, y, MINE);
setCellColor(x, y, Color.RED);
setCellValueEx(x, y, Color.RED, MINE);
gameOver();
}
else if (!gameField[y][x].isMine) {
score += 5;
setScore(score);
setCellColor(x, y, Color.GREEN);
if (gameField[y][x].countMineNeighbors > 0) { //если в соседней ячейке минимум 1 мина
setCellNumber(x, y, gameField[y][x].countMineNeighbors);
}
else if (gameField[y][x].countMineNeighbors == 0) {
setCellValue(x, y,"");
neighbors = getNeighbors(gameField[y][x]); // формирует лист с ячеками-соседями
for (GameObject o : neighbors) {
if (!o.isOpen) {
openTile(o.x, o.y);
try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace();}
}
}
}
if (countClosedTiles == countMinesOnField) win();
}
}