Hintergrund
Boggle ist ein Brettspiel, bei dem die Spieler auf einem 4-mal-4-Brett aus zufälligen Alphabeten nach englischen Wörtern suchen müssen. Wörter können konstruiert werden, indem nacheinander benachbarte Zellen auf der Tafel ausgewählt werden. ("benachbart" bedeutet horizontal, vertikal oder diagonal benachbart.) Dieselbe Zelle kann auch nur einmal in einem Wort verwendet werden.
Das Folgende ist eine Beispieltafel:
I L A W
B N G E
I U A O
A S R L
Auf diesem Board BINGO, ORANGEund WEARSgelten Worte, aber SURGEund RUSSIAnicht sind:
SURGE: Es gibt kein benachbartes Paar auf dem BrettRG.RUSSIA:Skann nicht zweimal verwendet werden.
Modified Boggle ist eine modifizierte Version von Boggle mit den folgenden Regeln:
- Die
nBoardgröße ist -by-n, wobeinjede positive ganze Zahl sein kann. - Jede Zelle kann ein beliebiges Byte zwischen 0 und 255 enthalten.
- Eine Zelle kann mehrmals verwendet werden, jedoch nicht zweimal hintereinander .
Unter Verwendung des Beispiels Platine oben, zusätzlich zu BINGO, ORANGEund WEARS, LANGUAGEwird eine gültige Zeichenfolge (da Gzweimal verwendet wird, aber nicht zweimal hintereinander) , aber RUSSIAist immer noch nicht (durch SSpair).
Hier ist ein weiteres Beispiel mit einem Codefragment. Die Zeichenfolge from itertools import*\nbefindet sich auf der folgenden Tafel, aber nicht from itertoosl import*oder from itertools import *:
f i ' ' s
r t m l
e o o p
\n * t r
Beachten Sie, dass Sie zwei benötigen o, um der ooSequenz zu entsprechen.
Herausforderung
Schreiben Sie eine Funktion oder ein Programm, das anhand einer modifizierten Boggle-Platine B(beliebiger Größe) und einer Zeichenfolge sfeststellt, ob ses sich auf befindet B.
Beschränkungen
Ihr Code selbst sollte auch auf eine modifizierte Boggle-Platine passen b. Das heißt, Sie müssen das Board bin Ihrem Beitrag zusammen mit Ihrem Code anzeigen, damit Ihre Funktion / Ihr Programm true ausgibt, wenn es angegeben ist, bund Ihren Code als Eingabe.
Wertung
Das Ergebnis Ihrer Einreichung ist die Seitenlänge des kleinsten Brettes, auf bdas Sie Ihren Code einfügen können. Krawatten werden durch die üblichen Code-Golf- Regeln gebrochen , dh die Länge Ihres Codes in Bytes. Die Einsendung mit der niedrigsten Punktzahl (für beide Kriterien) gewinnt.
Hat zum Beispiel from itertools import*\ndie Punktzahl 4 (unter Verwendung der obigen Karte) und eine Codelänge von 23 Bytes.
Ein- und Ausgang
Für die Eingabe können Sie eine beliebige Methode für Bund verwenden s. Dies beinhaltet eine Liste von Zeichen und eine Liste von Zeichencodes, 2D oder abgeflacht oder was auch immer sinnvoll ist. Optional können Sie die Kartengröße als Teil der Eingabe verwenden.
Für die Ausgabe können Sie eine der folgenden Optionen auswählen:
- Wahrheits - und Falschheitswerte gemäß der Konvention Ihrer Sprache oder
- Ein vordefinierter Wert für true bzw. false.
Bitte geben Sie Ihre Eingabe- / Ausgabemethode in Ihrem Beitrag an.
+=+=etwas. Das Problem ist die ==Ausgabefunktion ...