Sudoku-Löser (Sudoku solver)Dieser Online-Sudokulöser versucht Sudokus durch reine Logik zu lösen. Dazu befolgt er drei einfache Regeln, die weiter unten auf dieser Seite beschrieben werden. Zu meiner eigenen Überraschung lassen sich damit die meisten Aufgaben aus diversen Zeitschriften lösen. Geht es mal doch nicht weiter, kann das Progrämmchen auch "raten" (ausprobieren verschiedener Möglichkeiten). Damit lässt sich dann tatsächlich jedes gültige Sudoku lösen.
AnleitungTrage eine Sudoku-Aufgabe in das Eingabefeld ein und klicke Lösen. Wiederherstellen stellt die zuletzt gelöste Originalaufgabe wieder her. Mit Speichern kann ein beliebiger Zustand gespeichert werden, mit Abrufen kann dieser gespeicherte Zustand wieder abgerufen werden. Löschen säubert das Feld, löscht aber nicht gespeicherte Spiele.Dem Solver sind vier Beispiele beigefügt: Beispiel 1 lässt sich logisch mit wiederholter Anwendung von Regel A allein lösen. Beispiel 2 ist ein "schlechtes" Sudoku mit mehreren Lösungen. Dabei gelangt die Logik natürlich an ihre Grenzen, und so fragt das Programm nach, ob es raten soll. Erlaubt man dies, findet es nach und nach alle Lösungen. Beispiel 3 und Beispiel 4 sind wiederum eindeutig und logisch lösbar, doch werden zusätzlich auch Regel B und C benötigt. Achtung! Bei Aufgaben, die nur durch Probieren lösbar sind, kann es passieren, dass sich der Browser überlastet fühlt und eine Warnung einblendet (sie ist programmatisch leider nicht unterdrückbar). Wenn du die Warnung übergehst (im Firefox Abbrechen, im Internet Explorer Nein drücken), rechnet das Programm aber unbeirrt weiter und wird auch bald mal fertig werden. BerechnungDas Programm geht jede Zelle des Sudokufeldes der Reihe nach durch und ermittelt für jede Zelle die Menge der Ziffern, die in dieser Zelle im gegenwärtigen Lösungszustand noch möglich wären. Sind z.B. für eine Zelle nur mehr die Ziffern 1, 2, oder 3 möglich, schreibe ich vereinfacht 123.Zuerst wird Regel A für jede Zelle des Feldes angewandt. Ändert sich während eines Durchgangs die Anzahl der möglichen Ziffern in mindestens einer Zelle, wird die Regel A erneut auf das ganze Feld angewandt. Ändert sich nichts mehr, kommt Regel B dran. Passiert auch da nichts, wird Regel C durchgeführt. Wenn schließlich alle drei Regeln nichts mehr bewirken, fragt das Programm nach, ob es raten soll. Dabei wird eine mögliche Ziffer in einer Zelle als richtig angenommen, und danach kommen wiederum die drei Logik-Regeln zum Zug. Stellt sich der Lösungsweg als falsch heraus, werden die Züge zurückgenommen, und das Ganze wird mit einer anderen "geratenen" Ziffer wiederholt. Regel AWenn sich eine gewisse Anzahl an Zellen in einer Zeile (oder Spalte oder Block) die gleiche Anzahl möglicher Ziffern teilen, dann entferne diese Ziffern aus allen anderen Zellen dieser Zeile (oder Spalte oder Block).
Regel BWenn eine Ziffer nur in einer Zeile (oder Spalte) eines Blocks vorkommt, kann in dieser Zeile (Spalte) in keinem anderen Block diese Ziffer vorkommen. Also entferne diese Ziffer in der Zeile (Spalte) aus den beiden anderen Blöcken.
Regel CWenn eine Ziffer in einer Zeile (oder Spalte) in zwei Blöcken nicht möglich ist, dann muss die Ziffer im verbliebenen Block in dieser Zeile stehen. Also entferne diese Ziffer aus den beiden anderen Zeilen (oder Spalten) dieses Blocks.
Chronik
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||