Witam.
Proszę o porady odnośnie generowania plansz standardowego sudoku 9x9 w różnych poziomach trudności. Przeszukałem dość dożo różnych for oraz stron i interesującego mnie rozwiązania niestety nie znalazłem.
Znalazłem rozwiązania działające dobrze, wypełniające oraz tworzące plansze, ale przy użyciu klas oraz programowania obiektowego. Niestety, z tego typu rozwiązań korzystać nie mogę. Są różne rozwiązania problemu generowania plansz sudoku, ja mam skorzystać z algorytmu z powrotami. I szczerze powiedziawszy, jeszcze takowego samodzielnie nie pisałem.
Opiszę może co do tej pory zrobiłem i czego nie wiem ;)
Na sto procent korzystam z dwuwymiarowej tablicy zawierającej planszę.

Tplansza = array[1..9, 1..9] of byte;

Stworzyłem procedury, które odczytują z pliku planszę i zapisują do tej tablicy. Jeśli w danej komórce nie ma cyfry - jest tam "0". Oczywiście wpisywać rozwiązania itp. mogę.
Mam też drugą tablicę dwuwymiarową zawierającą możliwe liczby do wykorzystania.
Na początek proszę o jakieś rady od czego tutaj zacząć. Czy ten algorytm dobrze zaimplementowany sprawdzi się do generowania pełnej planszy sudoku?

znajdź_pierwszą_wolną_komórkę
if nie_ma_wolnych_komórek
return jest_rozwiazanie (bo cała tablica jest wypełniona)
else
while jest_liczba_do_wstawienia_nie_powodujaca_powtorzen
wstaw_pierwszą_liczbę_nie_powodującą_powtórzeń
uruchom_kolejną_iterację_z_tą_liczbą
if jest_rozwiząnie
return jest_rozwiązanie
else
oznacz_liczbę_jako_powodującą_powtórzenia
end
end
return nie_ma_rozwiązania (bo każda z możliwości prowadzi do sprzeczności
end