solo - Puzzlespiel basierend auf Sudoku
solo [--generate n] [--print bxh [--with-solutions] [--scale n] [--colour]] [Spiele-Parameter|Spiele-ID|Zufallsstartwert]
Sie bekommen ein Quadratgitter, das in so viele gleichgroße Unterblöcke zerteilt ist, wie das Gitter Spalten hat. Jedes Quadrat muss mit einer Ziffer von 1 bis zu der Größe des Gitters befüllt werden, so dass
Sie bekommen einige Zahlen als Hinweise; Ihr Ziel besteht darin, die restlichen Zahlen korrekt zu platzieren.
Bei den Standardeinstellungen sind die Unterblöcke Quadrate oder Rechtecke. Die Standardpuzzlegröße ist 3×3 (ein Gitter von tatsächlich 9×9, eingeteilt in neun 3by3 Blöcke). Sie können auch Größen mit rechteckigen statt quadratischen Blöcken auswählen, wie beispielsweise 2×3 (ein 6×6 Gitter unterteilt in sechs 3×2 Blöcke). Alternativ können Sie den ‘Jigsaw’-Modus auswählen, bei dem die Unterblöcke beliebige Formen haben, die sich zwischen den einzelnen Puzzlen unterscheiden.
Ein weiterer verfügbarer Modus ist ‘killer’. In diesem Modus werden die Hinweise nicht in der Form vorbefüllter Quadrate gegeben, stattdessen ist das Gitter durch farbige Linien in ‘Käfige’ eingeteilt und für jeden Käfig informiert Sie das Spiel, was die Summe aller Ziffern in diesem Käfig sein soll. Auch darf keine Ziffer mehr als einmal in einem Käfig auftauchen, selbst wenn der Käfig die Grenzen existierender Regionen überschreitet.
Falls Sie eine Puzzlegröße wählen, bei der mehr als 9 Ziffern benötigt werden, sind die zusätzlichen Ziffern die Buchstaben des Alphabets. Falls Sie beispielsweise 3×4 auswählen, werden die Ziffern im Gitter 1 bis 9 sowie ‘a’, ‘b’ und ‘c’ sein. Dies kann für killer-Puzzle nicht ausgewählt werden.
Ich habe dieses Puzzle zuerst in Nikoli (http://www.nikoli.co.jp/puzzles/1/index_text-e.htm) gesehen, obwohl es auch durch verschiedene Zeitungen unter dem Namen ‘Sudoku’ oder ‘Su Doku’ bekannt wurde. Howard Garns wird als Erfinder der modernen Form des Puzzles betrachtet und es wurde zuerst in Dell Pencil Puzzles and Word Games veröffentlicht. Eine tiefergehende Behandlung der Geschichte des Puzzles kann in Wikipedia (http://de.wikipedia.org/wiki/Sudoku) gefunden werden.
Um Solo zu spielen, klicken Sie einfach mit der Maus in ein leeres Quadrat und tippen Sie dann eine Ziffer oder einen Buchstaben auf der Tastatur, um dieses Quadrat zu füllen. Falls Sie einen Fehler gemacht haben, klicken Sie mit der Maus in das fehlerhafte Quadrat und drücken Sie die Leertaste, um es wieder zu leeren (oder verwenden Sie die Undo-Funktion).
Falls Sie in ein Quadrat rechts-klicken und dann eine Zahl tippen, wird diese Zahl im Quadrat als ‘Bleistiftmarkierung’ eingetragen. Sie können Bleistiftmarkierungen für mehrere Zahlen im gleichen Quadrat vornehmen. Quadrate, in denen Zahlen eingefüllt sind können nicht auch gleichzeitig über Bleistiftmarkierungen verfügen.
Das Spiel ignoriert Bleistiftmarkierungen, daher können Sie diese so einsetzen, wie Sie möchten: Sie können Sie als Erinnerung verwenden, dass ein bestimmtes Quadrat noch mal untersucht werden muss, sobald Sie mehr über eine bestimmte Zahl wissen, oder Sie können sie als Liste möglicher Zahlen für ein gegebenes Quadrat verwenden oder irgendetwas anderes, was Sie mögen.
Um eine einzelne Bleistiftmarkierung zu entfernen, klicken Sie rechts in das Quadrat und tippen Sie die Zahl noch mal.
Alle Bleistiftmarkierungen in einem Quadrat werden gelöscht, wenn Sie linksklicken und eine Zahl eingeben oder wenn Sie linksklicken und die Leertaste drücken. Auch rechtsklicken und drücken der Leertaste wird die Bleistiftmarkierungen löschen.
Verwenden Sie alternativ die Pfeiltasten, um die Markierung im Gitter zu bewegen. Durch Drücken der Eingabetaste schalten Sie die Markierung um (von normaler Markierung zur Bleistiftmarkierung). Geben Sie die Zahl ein, um diese in geeigneter Weise in das Quadrat einzutragen. Die Eingabe von 0 oder die Verwendung der Leertaste wird ein gefülltes Quadrat leeren.
(Alle unten beschriebene Aktionen sind auch verfügbar.)
Solo erlaubt Ihnen, zwei separate Dimensionen des Puzzlegitters im Menü ‘Type’ zu konfigurieren: die Anzahl der Spalten und die Anzahl der Zeilen, in die das Hauptgitter eingeteilt wird. (Die Größe eines Blocks ist hierzu invers: Falls Sie beispielsweise 2 Spalten und 3 Zeilen wählen, wird jeder Block tatsächlich 3 Spalten und 2 Zeilen haben.)
Falls Sie die Auswahl ‘X’ ankreuzen, wird Solo die zusätzliche Randbedingung verwenden, dass die zwei Hauptdiagonalen auch jede Ziffer nur einmal verwenden. (In Zeitungen heißt dies manchmal ‘Sudoku-X’). In diesem Modus werden die Quadrate der Hauptdiagonalen leicht schattiert, so dass Sie sehen können, dass der Modus aktiviert wurde.
Falls Sie die Auswahl ‘Jigsaw’ ankreuzen, wird Solo zufällig generierte Teilblöcke erstellen. In diesem Modus wird die tatsächliche Gittergröße das Produkt der in die Felder ‘Columns’ und ‘Rows’ eingetragenen Werte darstellen. Es gibt keinen Grund, warum Sie eine Zahl größer als 1 in beide Felder eingeben müssen; der Jigsaw-Modus kennt keine Grenzen in der Gittergröße und es kann sogar eine Primzahl sein, wenn Sie dies möchten.
Falls Sie die Auswahl ‘Killer’ ankreuzen, wird Solo einen Satz Käfige generieren, die eine zufällige Form haben und als Umriss in einer anderen Farbe gezeichnet werden. Jeder dieser Regionen enthält einen kleineren Hinweis, der die Summe der Ziffern aller Quadrate in dieser Region angibt.
Sie können auch die Art von Symmetrie im generierten Puzzle konfigurieren. Puzzle mit höherer Symmetrie sehen netter aus, allerdings können sie dadurch auch einfacher werden, da die Symmetrie-Randbedingungen mehr angezeigte Hilfen als notwendig erzwingen könnten. Bei komplett asymmetrische Puzzlen besteht die Freiheit, sowenige Hilfestellungen wie möglich zu enthalten.
Schließlich können Sie den Schwierigkeitsgrad der generierten Puzzle konfigurieren. Schwierigkeitsstufen basieren auf der Komplexität der Techniken, die zum Lösen des Puzzles benötigt werden: Jede Stufe benötigt einen Schlussfolgerungsmodus, der in der vorherigen Stufe nicht notwendig war. Insbesondere gibt es in den Schwierigkeitsstufen ‘Trivial’ und ‘Basic’ ein Quadrat, in dem Sie zu allen Zeiten eine einzelne Zahl eintragen können, während Sie in der Stufe ‘Intermediate’ und höher Teilschlussfolgerungen über die Menge aller Quadrate machen müssen, in denen eine Zahl sein könnte (oder der Satz an Zahlen, der in einem Quadrat sein könnte). In der Stufe ‘Unreasonable’ ist selbst dies nicht genug und Sie müssen schließlich raten und falls sich die geratene Zahl als falsch herausstellt wieder schrittweise zurückgehen.
Die Erstellung schwieriger Puzzle ist selbst schwierig: Falls Sie eine der höheren Schwierigkeitsgrade auswählen, könnte Solo viele Versuche bei der Erstellung eines Puzzles machen, bevor es eines findet, das schwer genug für Sie ist. Seien Sie daher auf Wartezeit vorbereitet, insbesondere wenn Sie auch eine große Puzzlegröße ausgewählt haben.
Diese Aktionen sind vom Menüpunkt ‘Game’ und über Tastaturkürzel verfügbar, zusätzlich zu allen spielspezifischen Aktionen.
(Unter Mac OS X befinden sich diese Aktionen unter den Menüs ‘File’ und ‘Edit’, um den lokalen Benutzerschnittstellenstandards zu genügen.)
Die Operationen Load und Save erhalten Ihren gesamten Spielverlauf (daher können Sie speichern, neuladen und immer noch Aktionen, die Sie vor dem Speichern durchgeführt hatten, rückgängig machen (Undo) oder erneut ausführen (Redo)).
Einige Spiele (wie Solo) sind in der Lage, eine Spiele-ID zu lösen, die Sie aus anderer Quelle erhalten haben. Andere Spiele (wie Rectangles) können keine Spiele-ID lösen, die sie nicht selbst erfunden haben, aber wenn sie die Spiel-ID selbst erfunden haben, kennen sie die Lösung bereits. Wieder andere Spiele (Pattern) können einige externe Spiele-IDs lösen, aber nur falls diese nicht zu schwer sind.
Der ‘Solve’-Befehl fügt den gelösten Zustand an das Ende der Undo-Kette für das Puzzle hinzu. Mit anderen Worten, falls Sie zum eigenständigen Lösen zurückkehren wollen, nachdem Sie die Antwort gesehen habe, wählen Sie einfach Undo aus.
Es gibt zwei verschiedene Arten eine Spielspezifikation in einem Puzzle zu speichern und dieses später wieder herzustellen, entweder in Ihrer Umgebung oder in der Ausgabe des gleichen Puzzles bei einer anderen Person.
Die Optionen ‘Specific’ und ‘Random Seed’ aus dem Menü ‘Game’ (oder ‘File’ unter Mac OS X) zeigen jeweils ein Stück Text (eine ‘Spiele-ID’), der ausreicht, um genau dieses Spiel zu einem späteren Zeitpunkt zu rekonstruieren.
Sie können eines dieser Textstücke später wieder im Programm eingeben (über die gleiche Menüoption ‘Specific’ oder ‘Random Seed’) und es wird das gleiche Spiel wieder erzeugt. Sie können auch eines davon (unter Windows oder Unix) als Befehlszeilen-Argument verwenden; lesen Sie unten für weitere Details.
Der Unterschied in der zwei Formen besteht darin, dass die beschreibende Spiele-ID eine Beschreibung des Anfangszustands des Spieles ist, während der Zufallsstartwert lediglich ein Stück beliebiger Text ist, der als Eingabe für den Zufallszahlengenerator zur Erzeugung des Puzzles verwandt wurde. Dies bedeutet:
(Verwenden Sie die Menüoption ‘About’ um die Versionsnummer des Programms herauszufinden. Programme mit der gleichen Versionsnummer auf verschiedenen Plattformen sollten im Hinblick auf die Zufallsstartwerte kompatibel sein.)
Eine beschreibende Spiele-ID beginnt mit einem Stück Text, der die Parameter des aktuellen Spiels kodiert (wie beispielsweise die Gittergröße). Dann folgt ein Doppelpunkt und danach eine Beschreibung des Anfangszustandes des Spieles. Ein Zufallsstartwert beginnt mit einer ähnlichen Zeichenkette, enthält dann aber ein Rautezeichen gefolgt von beliebigen Daten.
Falls Sie eine beschreibende Spiele-ID eingeben wird das Programm nicht in der Lage sein, Ihnen den erzeugenden Zufallsstartwert anzuzeigen, da es nicht aus einem Zufallsstartwert erzeugt wurde. Falls Sie allerdings einen Zufallsstartwert eingeben, wird das Programm in der Lage sein, Ihnen den daraus abgeleiteten Zufallsstartwert anzuzeigen.
Beachten Sie, dass die Spieleparameterzeichenketten sich in den zwei Formen unterscheiden können. Bei einigen Spielen werden beim Zufallsstartwert zusätzliche Parameterdaten angegeben werden, die bei der beschreibenden Spiele-ID entfallen. Dies kommt daher, dass diese Parameterinformationen nur zur Erstellung von Gittern, aber nicht beim Spielen relevant sind. So wird beispielsweise der Schwierigkeitsgrad von Solo (oben) in der beschreibenden Spiele-ID nicht erwähnt.
Diese zusätzlichen Parameter werden auch nicht permanent gesetzt, falls Sie eine Spiele-ID eingeben. Nehmen wir beispielsweise an, Sie haben den Schwierigkeitsgrad ‘Advanced’ in Solo eingestellt und ein Freund bittet Sie um Unterstützung bei einem Spiel der Schwierigkeit ‘Trivial’. Er liest daher einen einen Zufallsstartwert unter Benutzung der Schwierigkeit ‘Trivial’ aus und Sie geben diesen ein. Das Programm wird Ihnen das gleiche Gitter mit der Schwierigkeit ‘Trivial’ erstellen, mit dem Ihr Freund Probleme hatte, aber sobald Sie es zuende gespielt haben und ein neues Spiel beginnen, wird wieder automatisch auf die Schwierigkeit ‘Advanced’ zurückgeschaltet, die vorher eingestellt worden war.
Das Menü ‘Type’ kann, falls vorhanden, eine Liste der voreingestellten Spieleeinstellungen enthalten. Wird eines dieser Einträge ausgewählt, wird ein neues Spiel mit den angegebenen Parametern gestartet.
Das Menü ‘Type’ kann auch eine Option ‘Custom’ enthalten, die es Ihnen erlaubt, die Parameter des Spiels im Detail einzustellen. Die Parameter sind spielspezifisch und werden in den folgenden Abschnitten beschrieben.
(Dieser Abschnitt betrifft nicht die Mac OS X-Version.)
Die Spiele in dieser Sammlung speichern absichtlich niemals Informationen auf dem Computer, auf dem sie ausgeführt werden: sie haben keine Bestenliste und keine abgespeicherten Voreinstellungen. (Dies kommt daher, dass ich annehme, dass einige Personen sie auf der Arbeit spielen werden und diese Personen möchten wahrscheinlich so wenige Nachweise wie möglich hinterlassen!)
Falls Sie allerdings eines dieser Spiele mit einem vorgegebenen Satz an bestimmten Parametern starten möchten, können Sie diese auf der Befehlszeile angeben.
Am einfachsten erfolgt dies, indem Sie die gewünschten Parameter mit dem Menü ‘Type’ einrichten (siehe oben) und dann ‘Random Seed’ aus dem Menü ‘Game’ oder ‘File’ (siehe oben) auswählen. Der Text in dem Kasten ‘Game ID’ wird dann aus zwei Teilen bestehen, getrennt durch eine Raute. Der erste dieser Teile stellt die Spieleparameter dar (beispielsweise die Größe des Spielbereichs, und alles was Sie über das Menü ‘Type’ eingestellt haben).
Falls Sie das Spiel mit genau diesem Parametertext auf der Befehlszeile ausführen, wird es mit den von Ihnen angegebenen Einstellungen gestartet.
Beispiel: Sie führen Cube aus (siehe cube(6)), wählen ‘Octahedron’ aus dem Menü ‘Type’ aus und gehen dann zu der Auswahl der Spiele-ID. Dort sehen Sie eine Zeichenkette der Form ‘o2x2#338686542711620’. Verwenden Sie nur den Teil vor der Raute (‘o2x2’) und starten Sie Cube mit diesem Text auf der Befehlszeile: ‘cube o2x2’.
Falls Sie die gesamte Spiele-ID auf der Befehlszeile angeben wird das Spiel mit dem speziellen beschriebenen Spiel gestartet. Dies ist manchmal der bequemere Weg eine bestimmte Spiele-ID zu starten, statt diese in den Auswahlkasten für die Spiele-ID einzufügen.
(Sie können die kodierten Spieleparameter auch aus der Menüoption ‘Specific’ statt ‘Random Seed’ auslesen, allerdings werden dann einige Parameter, wie der Schwierigkeitsgrad in Solo, fehlen. Lesen Sie oben für weitere Details darüber.)
(Dieser Abschnitt betrifft nur die Unix-Portierung.)
Zusätzlich zu der Möglichkeit, die Spieleparameter auf der Befehlszeile zu übergeben (siehe oben) gibt es verschiedene andere Optionen:
Falls auf der Befehlszeile Spieleparameter angegeben sind, werden diese zur Erzeugung von Spiele-IDs verwandt; andernfalls wird ein voreingestellter Satz an Parametern verwandt.
Der häufigste Einsatzfall dieser Option besteht im Zusammenhang mit der Option --print. Dabei unterscheidet sich das Verhalten etwas, siehe unten.
Auf jeder Seite mit Puzzlen wird es w quer und h nach unten geben. Falls es mehr Puzzle als w×h gibt wird mehr als eine Seite gedruckt.
Falls auch --generate angegeben wurde, werden die ausgedachten Spiele-IDs zur Erzeugung der gedruckten Ausgabe verwandt. Andernfalls wird auf der Standardeingabe eine Liste von Spiele-IDs im gleichen Format, wie das von --generate erzeugte, erwartet (diese können beschreibend oder mit Zufallsstartwert sein, siehe oben).
Zum Beispiel:
net --generate 12 --print 2x3 7x7w | lpr
Wird zwei Seiten an gedruckten Net-Puzzlen (jedes wird ein 7×7 Umlauf-Gitter enthalten) erstellen und diese über eine Pipe an den lpr-Befehl senden, der die Ausgabe auf vielen Systemen auf den eigentlichen Drucker schicken wird.
Es gibt verschiedene weitere Optionen mit Auswirkungen auf das Drucken, siehe unten.
Falls auch --generate angegeben wurde, werden die ausgedachten Spiele-IDs zur Erzeugung der gedruckten Ausgabe verwandt. Andernfalls wird auf der Standardeingabe eine Liste von Spiele-IDs im gleichen Format, wie das von --generate erzeugte, erwartet (diese können beschreibend oder mit Zufallsstartwert sein, siehe oben).
Zum Beispiel:
net --generate 12 --save game --save-suffix .sav
wird zwölf gespeicherte Spieledateien für Net mit den Namen game0.sav bis game11.sav erstellen.
Die folgenden Optionen sind nur von Bedeutung, falls auch --print angegeben wird:
Komplette Dokumentation in /usr/share/doc/sgt-puzzles/puzzles.txt.de.gz.