Überprüfen Sie ein vorgeschlagenes Kreuzworträtsel.
Einträge sollten vollständige Programme sein, die einfach ein vorgeschlagenes Raster testen, um festzustellen, ob es eine Reihe von Bedingungen erfüllt, um Kreuzworträtsellöser glücklich zu machen.
Eingang
Die Eingabe ist der Name einer Datei, die das Kreuzworträtsel darstellt. Der Eingabedateiname kann als Argument, für die Standardeingabe oder auf andere herkömmliche Weise als durch Hardcodierung übergeben werden.
Rasterdateiformat: Die erste Zeile besteht aus zwei durch Leerzeichen getrennten Ganzzahlkonstanten M und N. Nach dieser Zeile befinden sich M Zeilen, die jeweils aus N Zeichen (plus einer neuen Zeile) bestehen [#A-Z ]
. Diese Zeichen werden so interpretiert, dass sie '#'
ein blockiertes Quadrat, ' '
ein offenes Quadrat im Puzzle ohne bekannten Inhalt und einen Buchstaben ein offenes Quadrat anzeigen, das diesen Buchstaben enthält.
Ausgabe
Das Programm sollte keine Ausgabe in gültigen Gittern erzeugen und mit normalem Beendigungszustand beenden. Wenn das vorgeschlagene Raster ausfällt, sollte das Programm eine Diagnosefehlermeldung ausgeben und mit einem abnormalen Beendigungsstatus (dh nicht 0 unter Unix) beenden, wenn dies von Ihrer Ausführungsumgebung unterstützt wird. Die Fehlermeldung sollte sowohl angeben, welche Bedingung für die Gültigkeit verletzt wurde, als auch die Position des fehlerhaften Quadrats. Es steht Ihnen frei, die Mittel zur Übermittlung dieser Fakten zu wählen.
Bedingungen für die Gültigkeit
Gültige Gitter haben keine Antworten (quer oder runter), die nur 1 Zeichen lang sind (zusätzliche Gutschrift, um die Mindestlänge zu einem Eingabeparameter zu machen) und weisen die übliche Symmetrie auf. Die übliche Symmetrie bedeutet, dass das Kreuzworträtsel danach gleich bleibt (drei äquivalente Beschreibungen derselben Operation):
- Reflexion durch das eigene Zentrum
- Reflexion sowohl vertikal als auch horizontal
- 180 Grad Drehung
Testeingabe und erwartete Ausgabe
Geht vorbei:
5 5
# ##
#
#
#
## #
Schlägt bei kurzer Antwort fehl:
5 5
## ##
#
#
#
## ##
Symmetrie scheitert:
5 5
# ##
#
#
# #
## #
Beiseite
Dies ist die zweite von mehreren Herausforderungen im Zusammenhang mit Kreuzworträtseln. Ich plane, durchgehend eine konsistente Reihe von Dateiformaten zu verwenden und dabei eine seriöse Suite von Kreuzworträtsel-bezogenen Dienstprogrammen aufzubauen. Zum Beispiel erfordert ein nachfolgendes Puzzle das Drucken einer ASCII-Version des Kreuzworträtsels basierend auf der Eingabe und Ausgabe dieses Puzzles.
Frühere Herausforderungen in dieser Reihe: