Ich habe ein meistverkauftes Sudoku-Spiel im iOS-App-Store. So habe ich Rätsel generiert.
Zuerst habe ich eine Puzzle-Generator-Anwendung. Aber es ist nicht Teil des Spielcodes. Es ist eine eigenständige App, mit der ich Rätsel mache. Es ist stark modifiziert, so dass ich es so einstellen kann, dass verschiedene Mustertypen, Schwierigkeitsgrade, Anzahl der Givens usw. erstellt werden. Das Generieren von Rätseln und das Erzielen eines einheitlichen Schwierigkeitsgrades ist im Flug schwierig und dauert länger, als ein Spieler warten möchte. Also erstelle ich so genannte "Samen-Rätsel", und das wird vom Spielcode verwendet, um die Rätsel zu generieren, die die Leute spielen.
Ich antworte hier nicht, wie man einen Generator codiert. Sie können tonnenweise Puzzlespiel-Generator-Code online googeln und finden. Fang dort an. Aber um ein gutes Spiel zu machen, muss man ein gutes Spiel machen. Mein Spiel generiert keine Rätsel im laufenden Betrieb.
Die Art und Weise, wie meine Puzzle-Generator-App funktioniert, ist, dass sie Tausende von Puzzles pro Minute generiert, aber sie sind nicht alle gut und sie stimmen nicht mit einem bestimmten Schwierigkeitsgrad überein. Der Generator erstellt ein Puzzle, löst es und ermittelt einen Schwierigkeitsgrad. Er bewertet das Puzzle basierend auf den Techniken, die zur Lösung des Puzzles erforderlich sind, und ermittelt, ob eine Schätzung erforderlich ist, um das Puzzle zu lösen (was normalerweise schlecht ist). Es wirft alle Rätsel aus, die keinem Kriterium entsprechen. Bei harten, aber nicht unmöglichen Rätseln kann es auf einer schnellen Maschine eine Stunde dauern, bis 100 Rätsel generiert sind, die genau meinen Spezifikationen entsprechen. Deshalb mache ich das nicht in der App. Das Generieren von Rätseln im laufenden Betrieb mit diesen harten Spezifikationen würde für die Qualität der Rätsel, die ich in meiner App habe, nicht funktionieren.
Die Rätsel sind Zeichenfolgen mit einer Länge von 162 Zeichen, 81 Zeichen mit Zahlen und Strichen oder Punkten an der Stelle, an der sich die Leerzeichen befinden, und weitere 81 Zeichen mit der Lösung. Dann Spalten für jede Statistik, wie viele Einzel-, Doppel- usw.
Meine Ausgabe aller Generierungssitzungen sind durch Kommas getrennte Zeilen mit den Statistiken als Spalten. Ich nehme vielleicht 10.000 Puzzles, bringe sie ins Spiel und sortiere sie nach Schwierigkeitsgrad. Dann bring sie in eine App, um sie auf dem Spielplan zu sehen. Ich schaue sie auch an, um die visuelle Attraktivität und die sichtbaren Muster des Puzzles zu prüfen. Dann wähle ich von Hand aus.
Ich nenne sie Samenpuzzles und hier ist was ich meine. Die Zahlen in einem Sudoku-Spiel sind eigentlich nur Token. Anstatt die Zahlen 1 bis 9 zu sein, könnten sie Farben oder Symbole oder Buchstaben sein. Meine Rätsel sind also keine Zahlen, sondern die Buchstaben ai. Jedes Samen-Puzzle wird im laufenden Betrieb geändert, um ein spielbares Puzzle zu erstellen:
- Ordne die Zahlen / Token nach dem Zufallsprinzip an. Wenn ich die Buchstaben ai zurück in die Zahlen 1-9 verwandle, wird die Nachschlagetabelle zufällig ausgewählt. Dies bedeutet, dass a nicht immer 1 ist. Allein dadurch entstehen ungefähr 300.000 Variationen für jedes Puzzle.
- Drehe das Puzzle um 90, 180 oder 270 Grad. Das fügt 4 weitere Variationen hinzu.
- Flop das Puzzle horizontal, vertikal oder beides. Das fügt 4 weitere Variationen hinzu.
Jedes Samen-Puzzle kann daher 5.806.080 Variationen erzeugen. Ich habe dies im Feld mit echten Spielern getestet. Die Leute wissen nicht, dass sie im Grunde dasselbe Puzzle spielen. Das ist eigentlich unmöglich. Nur wenn sie bemerken, dass das Muster, in dem sich die Gaben befinden, jedes Mal dasselbe ist. Aber selbst mit 100 verschiedenen Samen wird es niemand bemerken. Eine Million Benutzer meines Spiels haben es nicht getan. Ich habe es auch mit Solver-Apps getestet. Eine Solver-App löst ein Puzzle nicht auf die gleiche Weise, wenn es gedreht oder gefloppt wird. Manchmal wird es sogar als ein anderer Schwierigkeitsgrad analysiert, obwohl es technisch dasselbe Rätsel ist.
Allerdings hat Big Bad Sudoku Book 10 von 1000 Puzzles in 5 Schwierigkeitsstufen und mehrere Puzzlemustertypen. Das bedeutet, dass mein Spiel Milliarden von Rätseln enthält. Pro 10.000 Rätsel gibt es 58.060.800.000 verschiedene Rätsel.
In Sudoku Book Version 4 (voraussichtlich 2016) habe ich einen Weg gefunden, um aus diesen 58 Milliarden ein genaues Puzzle zu bestimmen und auf dem Gerät jedes Spielers das gleiche Puzzle zu erhalten.