Итак, у меня есть базовая c игра / решатель судоку.
И я пытаюсь сделать очень базовую c анимацию для решателя.
Функция решателя:
public boolean solve (int[][] sudoku) {
int[] location = findFirstZero();
int y = location[0];
int x = location[1];
//-1 if there was no first zero found
if (x == -1) {
return true;
}
//Uses backtracking algorathem to solve
for (int i = 1; i <= 9; i++) {
if (numberWorks(sudoku, y, x, i)) {
sudoku[y][x] = i;
//What I want to animate
tfCells[y][x].setText(i + "");
tfCells[y][x].setBackground(Color.GREEN);
if (solve(sudoku)) {
return true;
} else {
sudoku[y][x] = 0;
//Other part of what I want to animate
tfCells[y][x].setBackground(Color.RED);
tfCells[y][x].setText(i + "");
}
}
}
return false;
}
Я хочу, чтобы он показал, что он работает через судоку, с полем, в котором он в настоящее время работает, чтобы он стал зеленым / красным (зеленый для текущего правильного, красный для неправильного) и отображение числа по мере его появления через него.
Я думаю, что с текущей функцией (см. выше) она в настоящее время выполняет анимацию, но делает это слишком быстро (хотя это может быть неправильно), поэтому я перепробовал множество методов задержки it (Timer, TimeUnit.SECONDS.sleep () и Thread.sleep ()), но они просто задерживают переход всех окон в зеленый цвет, а не делают это по отдельности. (Показывает результат, а не процесс).
Сообщите мне, что я делаю неправильно / если вам нужна дополнительная информация