Я использую этот алгоритм решения обратной передачи, который действительно хорош и эффективен
private void solve()
{
for (var y = 8; y >= 0; y--)
{
for (var x = 8; x >= 0; x--)
{
var a = grid[y, x];
if (a == 0)
{
for (var n = 1; n <= 9; n++)
{
if (possible(y, x, n))
{
grid[y, x] = n;
solve();
grid[y, x] = 0;
}
}
return;
}
}
}
print();
}
Дело в том, что я хочу добавить небольшое изменение, которое я не смог сделать, и вместо этого из числа от 1 до 9, чтобы я выбрал случайное число от 1 до 9, а затем установил его в сетке, без повторения, конечно.