Sudoku Generator - Backtracking Problem

  • Lange her, dass ich in Hilfe & Unterstützung einen Thread erstellt habe..
    Zu meinem Problem:
    Ich habe ein kleines Sudoku Programm in AutoIt geschrieben. Das funktioniert schon mal ganz gut. Die Darstellung per GDI+ ist korrekt, die Eingabe der Zahlen funktioniert und die Überprüfung der Eingaben sollte auch korrekt funktionieren.
    Leider klappt es mit der Funktion _Generate() (soll ein komplett ausgefültes Sudokufeld erzeugen) noch nicht besonders gut... Die Funktion läuft in etwa so ab (rekursiver Prozess):
    - Feld Nr. 1 bekommt Zufallszahl zwischen 1 und 9 zugewiesen.
    - Überprüfung auf Regelverstoß
    -> Regelverstoß, Return 0
    -> Kein Regelverstoß, Funktion für nächstes Feld aufrufen


    Sobald die Funktion alle Zahlen ausprobiert hat, wird sie per Return verlassen und zur vorherigen Ebene zurückgekehrt. Dort wird dann die nächste Zahl eingesetzt usw...


    Das Problem ist, dass die Funktion auch bei langer Laufzeit kein Ergebnis liefert sondern unaufhörlich weiter experimentiert. Als ich zusätzlich davor noch 3 voneinander unabhängige Blöcke mit Zahlen von 1 bis 9 gefüllt habe um zumindest ein paar richtige Zahlen am Anfang zu haben, ist die Funktion mit Rückgabewert 0 ausgestiegen. Das heißt, laut Funktion gibt es keinen möglichen Lösungsweg. Das kann doch aber nicht sein... ?(


    Da ich mittlerweile den Wald vor lauter Bäumen nicht mehr sehe, dachte ich mir ich frag mal hier nach. ;)
    Vielleicht ist es ja wieder ein eigentlich offensichtlicher, kleiner Fehler den bloß ich nicht mehr erkennen kann..

    Edit: Ich hab das Problem nun selbst gelöst... Es lag an der Überprüfungsfunktion :pinch: . Ich hab das Script fürs erste entfernt, die funktionsfähige Version werde ich dann vermutlich in Scripte posten.