Ein gitterfüllender Mäander ist ein geschlossener Pfad, der jede Zelle eines quadratischen Gitters mindestens einmal besucht, niemals eine Kante zwischen benachbarten Zellen mehr als einmal kreuzt und sich niemals selbst kreuzt. Beispielsweise:
Einmal gefüllt, kann jede Zelle des Gitters durch eine der folgenden 8 Kacheln dargestellt werden:
Auf diese Weise nummeriert, können die Kacheln des obigen Mäanders durch diese Matrix dargestellt werden:
5 6 5 6
4 8 3 2
5 7 6 2
4 3 4 3
Ihre Aufgabe ist es, einen gitterfüllenden Mäander mit einem unvollständigen Kachelsatz fertigzustellen. Zum Beispiel der unvollständige Mäander:
... die mit 0
s für fehlende Kacheln dargestellt werden können:
5 0 0 0 6
0 0 7 0 0
0 0 0 0 3
2 4 0 0 0
0 0 3 0 0
... könnte so ergänzt werden:
... dh:
5 6 5 1 6
4 8 7 6 2
5 7 7 7 3
2 4 8 8 6
4 1 3 4 3
Spezifikationen
- Die Eingabe hat immer mindestens und höchstens (nicht leere) Kacheln, wobei .
- Sie können einen beliebigen Satz von Werten verwenden, um die Kacheln darzustellen, sofern dies in Ihrer Antwort angegeben ist.
- Ihre Eingabe und Ausgabe kann in jedem Format und in jeder Reihenfolge erfolgen, sofern dies in Ihrer Antwort angegeben ist.
- Für alle Eingaben ist mindestens eine gültige Lösung vorhanden (dh Sie müssen keine ungültigen Eingaben verarbeiten).
- Es gelten die Standard-E / A-Regeln .
- Standardlücken sind verboten.
- Erklärungen, auch für "praktische" Sprachen, sind erwünscht.
Testfälle
Eingabe ( Θ ):
0 6 0 0
Ausgabe ( Θ ):
5 6 4 3
Eingabe ( Θ ):
5 6 5 6 4 0 3 2 5 7 6 2 4 3 4 3
Ausgabe ( Θ ):
5 6 5 6 4 8 3 2 5 7 6 2 4 3 4 3
Eingabe ( Θ ):
5 0 0 0 6 0 0 7 0 0 0 0 0 0 3 2 4 0 0 0 0 0 3 0 0
Ausgabe ( Θ ):
5 6 5 1 6 4 8 7 6 2 5 7 7 7 3 2 4 8 8 6 4 1 3 4 3
quelle
Antworten:
JavaScript (ES7),
236 ... 193185 BytesAusgaben durch Ändern der Eingabematrix.
Probieren Sie es online!
(Enthält Nachbearbeitungscode, um das Ergebnis sowohl als Matrix als auch als flache Liste zu drucken, die mit dem vom OP bereitgestellten Visualisierungstool kompatibel ist. )
Ergebnisse
Wie?
Variablen
Erstkontrollen
Nehmen wir vorerst an, dass wir nicht zum Ausgangspunkt zurückkehren.
Auf der Suche nach einem Weg
Die letzten 8 Einträge sind ungültig und weggelassen. Die anderen 4 ungültigen Einträge sind explizit mit Bindestrichen gekennzeichnet.
Nachfolgend finden Sie als Referenz die dekodierte Tabelle, den Kompass und das Kachelset, die in der Challenge enthalten sind:
Pfad validieren
Daher der JS-Code:
Formatierte Quelle
quelle