Я делаю судоку на C, используя GTK для пользовательского интерфейса.Я внедряю судоку с возвратом, и я хотел бы, чтобы она была своего рода анимированной, то есть я хочу, чтобы она показывала числа, изменяющиеся в каждой ячейке и возвращающиеся в матрицу, и все такое, однако, яЯ не очень знаком с Gtk, поэтому я не очень успешен.Программа запускается с чтения файла с судоку, который уже имеет некоторые начальные подсказки, и пытается завершить, когда я нажимаю кнопку «Решить».
Я пытался использовать sleep()
, но он замораживает все приложение,Я попытался использовать g_usleep
, но что он делает, просто ждет одну секунду и показывает, что судоку решено сразу.
int solve_sudoku()
{
int row=0;
int col=0;
if(isEmpty(&row, &col) == 0) return 1;
int i;
for(i=1;i<=9;i++)
{
sudoku[row][col] = i;
char c[2];
sprintf(c,"%d",sudoku[row][col]);
gtk_entry_set_text(GTK_ENTRY(mat[row][col]),c);
g_usleep(1000);
if(validate_Cell(i, row, col))
{
if(solve_sudoku()) return 1;
sudoku[row][col]=0;
char k[2];
sprintf(k,"%d",sudoku[row][col]);
gtk_entry_set_text(GTK_ENTRY(mat[row][col]),k);
g_usleep(1000);
}
}
return 0;
}
Я ожидаю, что результат будет похож на анимированную судоку, но фактический результат - ожидание решенной судоку в одну секунду.Я хочу постоянно обновлять интерфейс с каждым числом, которое он пытается для каждой ячейки, и показывать, что он выполняет возврат, возвращая ячейку и т. Д.