Die Sudoku Regel
Das Sudoku Spiel hat nur eine Regel:
Fülle das 9x9 Gitter mit den Zahlen 1 bis 9 aus, sodass alle
Zeilen, Kolonnen und 3x3 Blöcke keine doppelten Zahlen enthalten.
Anders gesagt, alle diese Regionen müssen alle Zahlen 1 bis 9 enthalten.
Allgemeine Benutzung dieses Spiels
Dieses Sudoku Spiel unterstützt Sie bei der Lösung von Sudoku Rätseln, die Sie in Zeitungen, Büchern und im Interner finden. Es stellt auch vorbereitete Rätsel in drei Schwierigkeitsstufen zur Verfügung. Die hauptsächlichen Eigenschaften dieses Spiels sind die folgenden:
- Sie können die verbleibenden Kandidaten in den leeren Zellen einblenden.
- Sie können die Kandidaten editieren und somit fortgeschrittene Lösungsstrategien anwenden.
- Sie können die gesetzten Zahlen in der richtigen (d.h. umgekehrten) Reihenfolge wieder herausnehmen und somit die "Versuch-und-Irrtum" Methode ausprobieren.
- Und schliesslich können Sie die Lösung anfordern, wenn Sie völlig verzweifelt sind.
Das Spiel hat zwei Phasen:
Phase 1: Rätsel definieren
In der ersten Phase definieren Sie das zu lösende Sudoku Rätsel.
Während dieser Phase können Sie die Zahlen in den Zellen beliebig editieren. Klicken Sie in der "Definitionszeile"
auf eine Zahl - die Zahl wird selektiert. Klicken Sie jetzt auf ein leeres Feld im Sudoku Raster. Die ausgewählte Zahl wird dort eingetragen. Sie können eine Zahl mir einer anderen Zahl überschreiben, oder Sie können den Zellinhalt löschen, indem Sie zuerst "X" selektieren.
Sie können die Zahlen auch mit der Tastatur eingeben. Dazu darf zuerst keine Zahl in der Definitionszeile selektiert werden. Ist eine solche Zahl selektiert, klicken Sie auf sie und sie wird deselektioniert. Nun können Sie mit einem Mausklick ein Feld im Brett auswählen und dann mit der Tastatur die gewünschte Zahl einsetzet. Mit den Tasten 'x', 'del', 'enter', '0' können Sie die eingegebenen Zahlen löschen. Wenn ein Feld auf dem Brett ausgewählt ist, können Sie auch auf eine Zahl in der Definitionszeile klicken - sie wird dann sofort in das selektierte Feld eingesetzt.
Es gibt also zwei Eingabemöglichkeiten. Sie schalten von einer zur anderen indem Sie die aktuelle Selektion mit einem Klick darauf deselektieren und dann mit einem Klick entweder in der Definitionszeile oder im Brett die neue Eingabemöglichkeit wählen.
Wenn Sie mit der Definition fertig sind, klicken Sie auf den Tabulator Lösen. Dadurch wechseln Sie in den Lösungsmodus (Phase 2).
Sie können auch ein vorbereitetes Rätsel verlangen. Wählen Sie den Schwierigkeitsgrad und drucken Sie auf den Knopf Rätsel verlangen. Ein neues Rätsel wird in das Gitter eingefüllt. Alle verfügbaren Rätsel sind nur mit logischer Überlegung lösbar. Die Schwierigkeitsstufen haben die folgende Bedeutung:
Stufe | Lösungsstrategien |
---|---|
Einfach | Nackter Single Versteckter Single |
Mittel | Block/Reihe Schnitt Block/Kolonne Schnitt Nacktes Paar |
Schwierig | Nackter Dreier Verstecktes Paar Versteckter Dreier X-Wing |
Wenn Sie das Rätsel als eine Zahlenreihe haben, zum Bespiel
oder
dann können Sie diese Reihe in das zugehörige Textfeld kopieren, und mit dem Knopf Rätsel setzen in das Gitter einfügen. Die Zahlenreihe representiert die Zahlen auf dem Brett geordnet nach Reihen. Leere Felder werden durch "0" or "." dargestellt.
Phase 2: Rätsel lösen
In der zweiten Phase lösen Sie das Rätsel. Sie klicken auf ein leeres Feld und setzen eine Zahl mit der oben beschriebenen Methode ein. Nun können Sie eine Zahl nicht direkt löschen, sondern müssen die Befehle Zurück (und Vor) anwenden. Das garantiert, dass die Zahlen in der umgekehrten Reihenfolge gelöscht werden, als sie gesetzt wurden. Dies ist wichtig, wenn Sie z.B. mit der "Versuch-und-Irrtum" Strategie experimentieren.
Der Knopf Kandidaten zeigen schaltet zwischen den Sichten mit oder ohne sichtbare Kandidaten. Die Kandidaten sind die noch möglichen Werte für die Zelle. Ein der Kandidaten ist der Lösungswert. Die Kandidaten werden während dem Spiel automatisch nachgeführt.
Die Kandidaten können auch manuell editiert werden: drucken Sie dazu den Knopf Kandidaten editieren. Wenn Sie jetzt eine Zahl eingeben, dann wird der Kandidat eingefügt oder gelöscht, je nach dem gegenwärtigen Zustand. Diese Möglichkeit ist wichtig für fortgeschrittene logische Lösungsstrategien. In diesem Modus werden die anderen Kandidaten nicht automatisch nachgeführt, Sie können aber die Kandidaten mit dem Befehl Kandidaten neu berechnen neu berechnen lassen. Dabei gehen Ihre Änderungen der Kandidaten verloren.
Befehle
- Definieren
- Definitionsmodus: Ein neues Spiel wird definiert.
- Rätsel verlangen
- Ein neues Rätsel mit der gewählten Schwierigkeitsstufe wird in das Gitter gesetzt.
- Rätsel setzen
- Die Sudoku Kodierung im nebenstehenden Feld wird in das Gitter eingefügt und als Startposition verwendet.
- Alles löschen
- Das Brett und der Eingabestring werden gelöscht.
- Lösen
- Lösungsmodus: Das definierte Spiel wird gelöst.
- Zurück ("Undo")
- Die ausgefüllten Felder werden in der umgekehrten Reihenfolge gelöscht.
- Vor ("Redo")
- Die mit "Zurück" gelöschten Felder werden mit den ursprünglichen Werten wieder gefüllt.
- Kandidaten zeigen
- Die verbleibenden Kandidaten werden angezeigt.
- Kandidaten editieren
- Die Feldeingaben addieren oder löschen Kandidaten. Die anderen Kandidaten werden nicht nachgeführt.
- Kandidaten neu berechnen
- Die Kandidaten werden neu berechnet ausgehend aus den gefüllten Zellen. Die leeren Zellen erhalten die maximale Anzahl von Kandidaten, die mit der Sudoku Regel konsistent sind. Editierte Kandidaten gehen verloren.
- Eingaben löschen
- Alle gesetzten, nicht definierten Zellen werden gelöscht.
- Lösung zeigen
- Das Rätsel wird gelöst und die Lösung wird unten angezeigt.
Maus und Tasten
- Maus Klick in der Definitionszeile
- Ein Mausklick auf einem nicht-selektierten Feld selektiert die respektive Zahl für die Eingabe im Brett. Wenn bereits ein Feld auf dem Brett selektiert ist. so wird die Definitionszahl in das Brettfeld eingesetzt. Das Definitionsfeld "X" dient dem Löschen. Ein Mausklick auf einem selektierten Feld deselektiert das Feld.
- Maus Klick im Brett
- Wenn eine Eingabezahl definiert ist, dann wird sie in das angeklickte Brettfeld eingesetzt. Wenn keine Eingabezahl definiert ist, so wird das das angeklickte Brettfeld für eine Zahleingabe selektiert. Ein Mausklick auf einem selektierten Brettfeld deselektiert das Feld.
- Tasten 1, 2, ... 9
- Wenn ein Brettfeld selektiert wird, so wird die entsprechende Zahl in das selektierte Brettfeld eingefügt.
- Tasten 'x', 'del', 'enter', '0'
- Wenn ein Brettfeld im Definitionsmodus selektiert wird, so wird es gelöscht.
Bemerkungen zur Implementierung
Generierung der Sudoku Rätsel
Ich generiere die Sudoku Rätsel offline mit einem C++ Programm. Zuerst erstelle ich ein zufällig ausgefülltes Sudoku mit Backtracking. Dann nehme ich Zahlen auf zufälligen symmetrischen Positionen weg. Die so entstandene Sudoku versuche ich mit den programmierten logischen Regeln zu lösen. Wenn ich eine Lösung finde, dann habe ich ein Rätsel konstruiert. Wenn die Sudoku mit den logischen Regeln nicht lösbar ist, versuche ich wieder eine andere zufällige Ausgangsposition. Um eine "schwierige" Sudoku zu generieren, brauche ich etwa 100'000 Versuche.
Lösung von Sudoku Rätseln
Sudoku Rätsel werden mit dem Javascript Programm "kudoku" gelöst (siehe Attractive Chaos - kudoku)