Hej, napisałem sobie program, który w założeniu ma rozwiązywać dowolne sudoku 9x9, jednakże mam problem ze znalezieniem błędu w funkcji rekurencyjnej, która zajmowałaby się uzupełnianiem planszy. Jeśli ktoś byłby w stanie wskazać mi sposób w jaki to powinno być zrobione poprawnie, to byłbym bardzo wdzięczny.
-funkcja isConf sprawdza czy po wstawianiu wartości x w lokalizację (i,j) występuje konflikt
-A - plansza
-C - tablica wartości logicznych; true dla liczb znajdujących się pierwotnie w planszy A;
void solve(int i, int j, int key, int A[][size], bool C[][size]) {
if (i > 8) {
if (!C[i][j]) A[i][j] = key;
if (key > 9) {
A[i][j] = 0;
return;
}
if (!isConf(i, j, key, A)) {
if (j == 8) solve(i + 1, 0, 1, A, C);
else solve(i, j + 1, 1, A, C);
}
else solve(i, j, key + 1, A, C);
}
}