Forum: Algorithmen, Datenstrukturen und Klassendesign
by Bjoerk,
22. Nov 2011
Das Prüfen auf Eindeutigkeit nimmt wirklich unheimlich viel Rechenzeit in Anspruch. Ich hab‘ es jetzt so gemacht, daß nur noch eine Quasiprüfung durchgeführt wird.
procedure TForm1.PutFixedPlaces;
var
Cell, HasValue: TIntegerList;
I, J, K, N: integer;
Result: boolean;
begin
Cell:= TIntegerList.Create;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Bjoerk,
21. Nov 2011
Natürlich kann man das so feststellen, muß man sogar, wie denn sonst? Alle verblieben Kandidatenkombinationen einem Sudoku zuführen. Gibt es dabei mehr als eine Lösung, ist es nicht eindeutig. Das ist genau der Teil, der noch fehlt. Da das Rechenzeit in Anspruch nimmt, wäre ein vorherige Abschätzung sinnvoll. Das war die Frage :wink:
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Bjoerk,
21. Nov 2011
function TForm1.TestSudoku: boolean;
var
N, M, K, I, J, J1, K1: integer;
T: TPoint;
begin
// Ausdünnung
// 1. Doppelte Kandidaten entfernen
Result:= true;
for N:= 1 to 9 do // Numbers
for I:= 0 to 8 do // Boxes