Ach nein! Nemo, unser kleiner Clownfisch ist in diesem ASCII-Ozean verloren und sein Vater Marlin versucht ihn zu finden.
Ihre Aufgabe ist es, Marlin sicher nach Nemo zu bringen. Aber Vorsicht, wir haben einen Fütterungsrausch Bruce auf freiem Fuß, also meide ihn besser um jeden Preis!
Einzelheiten
Sie erhalten ein rechteckiges ASCII-Ozeangitter, das nur Kleinbuchstaben enthält a-z. Dieser Ozean wird nemo, marlinund im bruceInnern in Form eines kontinuierlichen polyomino, beginnend immer von der obersten Zelle in der ersten Spalte der polyomino. So sind beispielsweise von allen möglichen Tetrominos die gültigen im folgenden Snippet aufgeführt
Formulare wie diese sind jedoch ungültig und in der Eingabe nicht vorhanden:
omen
ne
mo
nem
o
o
m
en
nem
o
n
eo
m
Schließlich besteht Ihre Aufgabe darin, einen Pfad von der marlinPolyomino-Kachel zur nemoPolyomino-Kachel zu finden, um sicherzustellen, dass sich keine Zelle in Ihrem Pfad neben der brucePolyomino-Kachel befindet. Ihre Ausgabe sollte alle Alphabete ersetzen, die nicht Teil der marlinKachel, der nemoKachel und des Pfads sind, die beide durch ein Zeichen aus dem druckbaren ASCII-Bereich (einschließlich Leerzeichen) mit Ausnahme des Kleinbuchstabens verbinden a-z.
Beispiel
Wenn der Eingangsozean wie folgt ist:
oxknvvolacycxg
xmliuzsxpdzkpw
warukpyhcldlgu
tucpzymenmoyhk
qnvtbsalyfrlyn
cicjrucejhiaeb
bzqfnfwqtrzqbp
ywvjanjdtzcoyh
xsjeyemojwtyhi
mcefvugvqabqtt
oihfadeihvzakk
pjuicqduvnwscv
(mit den 3 Polyominos sind:
...n..........
.mli..........
.ar...........
..............
....b.........
....ruce......
..............
.....n........
.....emo......
..............
..............
..............
)
Dann könnte eine gültige Lösung folgendermaßen aussehen:
...n..........
.mli..........
.ar...........
.u............
.n............
.i............
.z............
.wvjan........
.....emo......
..............
..............
..............
Das folgende Snippet enthält einige weitere Beispiele:
Anmerkungen
- Das Gitter wird immer ein perfektes Rechteck sein und nur eine polyomino Kachel enthält
nemo,marlinundbruce. - Ihr Pfad sollte nicht durch
bruceoder eine der 4 benachbarten (nach oben, unten, links und rechts) Zellen einer Zelle in derbruceKachel verlaufen. - Es ist immer garantiert, dass es mindestens einen gültigen Pfad von
marlinbis gibtnemo. - Hier ist kein kürzester Weg erforderlich, also verrückt!
- Auch wenn Sie nicht den kürzesten Pfad finden müssen, kann eine Zelle im Pfad (Pfad ohne Marlin oder Nemo) nicht an mehr als zwei andere Zellen im Pfad angrenzen.
- Der Weg sollte nicht durch die
marlinodernemoKacheln führen, da dies die kleinen Fische bei der Wahl der Richtung verwirren würde. - Wie üblich können Sie ein Programm oder eine Funktion schreiben, indem Sie Eingaben über STDIN (oder das nächstgelegene Äquivalent), ein Befehlszeilenargument oder einen Funktionsparameter vornehmen und die Ausgabe über STDOUT (oder das nächstgelegene Äquivalent), den Rückgabewert oder den Funktionsparameter (out) erzeugen.
- Wenn eine mehrzeilige Eingabe nicht möglich ist, können Sie davon ausgehen, dass das Raster durch das
|Zeichen anstelle von verbunden wird\n. Sie können die Eingabe auch als Array von Rasterzeilen verwenden.
Dies ist Code Golf, so dass der kürzeste Eintrag in Bytes gewinnt.
koben genanntelin Marlin sichtbar wäre? (macht den Weg vom n in Marlin nach Nemo)