Dies ist eine Herausforderung für Bullen und Räuber . Beantworten Sie hier, wenn Sie ein Polizist (Kreuzworträtselhersteller) sind, die Begleiterfrage, wenn Sie ein Räuber (Kreuzworträtsellöser) sind. Sie können beide Rollen übernehmen.
Cops (Puzzler)
Ihre Aufgabe ist es, ein 10 × 10- Kreuzworträtsel zu schreiben , bei dem anstelle von Wörtern oder Phrasen Codeausschnitte die Lösung für Hinweise darstellen. Jeder Hinweis ist eine nicht leere Folge von Zeichen, sodass durch Ausführen des Code-Snippets, auf das er verweist, die Folge auf stdout gedruckt wird.
Ihr Beitrag muss drei Dinge enthalten:
- Ihr leeres 10 × 10-Kreuzworträtselgitter, das
#
für Dunkelheiten ( Hinweisseparatoren ) und_
für Lichter (auszufüllende Zellen) verwendet wird.- Jede horizontale oder vertikale Folge von 2 oder mehr Lichtern (begrenzt durch Dunkelheit oder den Gitterrand) ist ein Eintrag, für den Sie einen Hinweis schreiben müssen. Der Einfachheit halber sollten Sie diese wie gewohnt nummerieren (von links nach rechts, von oben nach unten), indem Sie
_
am Anfang jedes Eintrags eine eindeutige Zeichenkennung (z. B. 1, 2, ..., A, B) eingeben , ...). - Ihr Gitter kann eine beliebige Anzahl von Dunkelheiten aufweisen.
- Ihr Raster kann eine beliebige Anzahl von Hinweisen enthalten.
- Horizontale Einträge werden immer von links nach rechts und vertikale von oben nach unten gelesen.
- Jede horizontale oder vertikale Folge von 2 oder mehr Lichtern (begrenzt durch Dunkelheit oder den Gitterrand) ist ein Eintrag, für den Sie einen Hinweis schreiben müssen. Der Einfachheit halber sollten Sie diese wie gewohnt nummerieren (von links nach rechts, von oben nach unten), indem Sie
- Eine Liste mit Hinweisen, die jeden Eintrag in Ihrem Kreuzworträtsel enthält.
- Hinweise müssen mindestens 1 und höchstens 10 Zeichen enthalten.
- Wenn Ihre Hinweise Leerzeichen enthalten, stellen Sie sicher, dass diese beim Formatieren Ihres Beitrags offensichtlich sind.
- Code-Schnipsel für Kopf- und Fußzeile , jeweils höchstens 20 Zeichen.
- Diese werden jeweils vor und nach einem Lösungsschnipsel ausgeführt und können beim Umbenennen langer eingebauter Funktionen und dergleichen hilfreich sein.
Das Verfahren, um sicherzustellen, dass ein Hinweis mit dem entsprechenden Code-Snippet übereinstimmt, ist:
- Verketten die Header, das Snippet und die Fußzeile:
[header][snippet][footer]
. - Führen Sie dies als normales Programm aus (unabhängig von früheren Läufen) und überprüfen Sie, was auf stdout gedruckt wurde.
- Wenn dies mit dem Hinweis übereinstimmt, ist das Snippet eine gültige Lösung.
Der Einfachheit halber dürfen Sie nur druckbare ASCII-Zeichen (Hex-Codes 20 bis 7E) verwenden. Die Kopf- und Fußzeile können auch Tabulatoren und Zeilenumbrüche enthalten.
Zusätzliche Bemerkungen
- Für jedes Snippet sollte das Ausführen
[header][snippet][footer]
auf einem anständigen modernen Computer nicht länger als eine Minute dauern . - Sie müssen Ihre Programmiersprache (und Version) angeben.
- Sie dürfen keine gängigen Hashing-Algorithmen verwenden.
- Sie dürfen keine externen Bibliotheken verwenden.
- Alles in Ihrem Code muss deterministisch und zeitinvariant sein und keine Netzwerkverbindung erfordern.
#
und_
kann in Snippets (oder anderswo) vorkommen.- Sie können einige der Zeichen im Kreuzworträtsel aufdecken, wie es COTO getan hat . Sie zählen immer noch als Lichter. Räuber müssen diese nicht benutzen, sie sind nur nette Hinweise.
Beispiel
Ein einfaches Beispiel mit Python 3. Rubrik: p=print;t=5;
. Keine Fußzeile.
Ungelöstes Gitter:
##########
1___2___##
_###_#####
_###_#####
_###_#####
####_#####
####_#####
###3______
####_#####
####_#####
Hinweise:
ACROSS
1: 8
3: A!
DOWN
1: 7
2: 10
Gültige Lösung:
##########
print(8)##
(###+#####
7###=#####
)###5#####
####;#####
####p#####
###p('A!')
####t#####
####)#####
Räuber (Löser)
Ihre Aufgabe ist es, die Kreuzworträtsel der Polizei zu lösen. Sie müssen genau die Programmiersprache verwenden, in der das Kreuzworträtsel angegeben wurde. Andernfalls ist jede Lösung gültig, die allen Hinweisen entspricht.
Möglicherweise lösen Sie Ihre eigenen Kreuzworträtsel nicht und versuchen, die anderen Kreuzworträtsel nur einmal zu beantworten.
Denken Sie daran, Ihre Lösungen in der Begleitfrage zu posten .
Wertung
Wird ein Kreuzworträtsel innerhalb von 72 Stunden gelöst, läuft es nicht mehr. Sobald ein Kreuzworträtsel 72 Stunden lang ungelöst ist, wird es als immun eingestuft und der Ersteller kann die Lösung veröffentlichen (indem er seinen Beitrag bearbeitet und als immun markiert).
Der siegreiche Polizist ist der Benutzer, der das Immunkreuzworträtsel mit den geringsten Dunkelheiten eingereicht hat ( #
). Bei Stimmengleichheit gewinnt die am höchsten bewertete Einreichung. Die Lösung muss bereitgestellt werden, damit die Antwort akzeptiert wird.
Der siegreiche Räuber ist der Benutzer, der die meisten Kreuzworträtsel löst. Der Tie-Breaker ist die Summe der Mehrstimmen in der Begleiterfrage .
sha512sum <<<"
Fußzeile: "|head -c10
(in Bash).