Sudoku-Löser mit Tkinter GUI in Python mit verstellbarem Zufallsgenerator

Eines Tages beim Lösen von ein paar Sudokus mit meiner Schwester kam ich auf die Idee, mir selbst meinen Sudoku-Löser zu programmieren. Es stellte sich als gar nicht so einfach heraus.

Anfangs kannte ich das Problem oder das Phänomen der Recursion noch nicht. Ich versuchte mich mit immer mehr und immer verschachtelteren Funktionen, doch der Sudoku-Solver funktionierte nicht. Danach suchte ich im Internet nach Lösungen für das Problem, und wurde schnell fündig: Es funktionierte nicht, weil es zu viele Möglichkeiten versuchen müsste, bis das Ergebnis gefunden würde. Die einzige Antwort auf dieses Problem war immer wieder Recursion. So nahm ich mich dem Thema an und lernte aus dem Zufall heraus effektive Programme mit Recusion zu schreiben.

Eindrücke

Ich habe es in Form einer GUI entworfen, weil es mit dem Zufallsgenerator einfach mehr Spaß macht, dem Programm beim Lösen zuzusehen. Anfangs versuchte ich es auch mit färbiger Markierung, falls das Programm beu einer Zahl falsch liegt oder richtig liegt, doch es werden so viele Durchgänge falsch gewertet, dass man dann selbst mit einer Verzögerung von nur einer halben Sekunde pro Farb-Darstellung ewig wartet, bis das Ergebnis erscheint.

Man steigt also in das Programm ein und kann ein Sudoku zufallsgenerieren. Wie viele Zahlen man zufallsgenerieren möchte, kann man selbst auswählen. Ich habe auch eine Version, wo ich es manuell eingeben kann, falls ich persönlich mal ein Sudoku nicht lösen kann.

Der Code