c't 10/2023
S. 170
Praxis
Sudoku-Generator
Bild: Thorsten Hübner

Rekursiver Ratzefummel

Sudoku-Generator in Python programmieren

Sudokus bekommen Sie nicht nur aus bunten Heftchen und werbeverseuchten Apps. Mit unserem Generator erstellen Sie im Handumdrehen eigene Zahlenrätsel. Ganz nebenbei lernen Sie, wie man ein solches Programm in Python realisiert.

Von Wilhelm Drehling

Logikrätsel wie Sudokus trainieren nicht nur das Gehirn, sondern geben auch eine prima Programmierübung ab. Die Regeln sind einfach: Jede Reihe, jede Spalte und jeder Kasten eines Sudokus muss die Zahlen 1 bis 9 enthalten, aber keine davon darf mehrfach vorkommen. Ein Sudoku zu erstellen, ist dagegen schwieriger: Der naive Programmieransatz, ein Array der Größe 9 × 9 aufzuspannen und mit ein paar Zufallszahlen zu füllen, die nicht gegen die Spielregeln verstoßen, führt selten zum Erfolg. Denn man kann nicht ausschließen, dass mehrere Lösungen existieren.

Sudoku-Generatoren gibt es in Hülle und Fülle, eine Variante beschreiben wir in diesem Artikel: Zuerst erzeugt unser Programm ein vollständig gelöstes Sudoku. Danach entfernt es eine Zahl und prüft, ob das Sudoku nur eine Lösung besitzt. Diesen Schritt wiederholt es so lange, bis genügend Felder leer sind. Damit Sie das fertige Sudoku auch per Stift und Papier lösen können, exportiert unser Programm das Rätsel als Vektorgrafik.

Kommentare lesen (5 Beiträge)