Oh no! Nemo, il nostro piccolo pesce pagliaccio si perde in questo oceano ASCII e suo padre Marlin sta cercando di trovarlo.
Il tuo compito è di portare Marlin in sicurezza su Nemo. Ma attenzione, abbiamo una frenesia di cibo Bruce a piede libero, quindi meglio evitarlo a tutti i costi!
Dettagli
Ti viene data una griglia oceanica ASCII rettangolare contenente solo alfabeti minuscoli a-z
. Questo oceano avrà nemo
, marlin
e bruce
al suo interno, sotto forma di un poliomino continuo, partendo sempre dalla parte più alta della prima colonna del poliomino. Ad esempio, tra tutti i possibili tetrominos, quelli validi sono elencati nello snippet di seguito
Ma moduli come questi non sono validi e non saranno presenti nell'input:
omen
ne
mo
nem
o
o
m
en
nem
o
n
eo
m
Infine, il tuo compito è quello di trovare un percorso dalla marlin
tessera poliomino alla tessera nemo
poliomino assicurandoti che qualsiasi cella nel tuo percorso non sia adiacente alla bruce
tessera poliomino. L'output dovrebbe sostituire tutti gli alfabeti che non fanno parte del marlin
riquadro, del nemo
riquadro e del percorso che li collega entrambi con un carattere dell'intervallo ASCII stampabile (incluso lo spazio) diverso da quello minuscolo a-z
.
Esempio
Se l'oceano di input è il seguente:
oxknvvolacycxg
xmliuzsxpdzkpw
warukpyhcldlgu
tucpzymenmoyhk
qnvtbsalyfrlyn
cicjrucejhiaeb
bzqfnfwqtrzqbp
ywvjanjdtzcoyh
xsjeyemojwtyhi
mcefvugvqabqtt
oihfadeihvzakk
pjuicqduvnwscv
(con i 3 polominomi:
...n..........
.mli..........
.ar...........
..............
....b.........
....ruce......
..............
.....n........
.....emo......
..............
..............
..............
)
Quindi una soluzione valida potrebbe apparire come:
...n..........
.mli..........
.ar...........
.u............
.n............
.i............
.z............
.wvjan........
.....emo......
..............
..............
..............
Lo snippet di seguito contiene alcuni altri esempi:
Appunti
- La griglia sarà sempre un rettangolo perfetto e conterrà solo una tessera di poliomino di
nemo
,marlin
ebruce
. - Il tuo percorso non deve attraversare
bruce
né una delle 4 celle adiacenti (su, giù, sinistra e destra) di nessuna cella nellabruce
tessera. - È sempre garantito che ci sarà almeno un percorso valido da
marlin
anemo
. - Non è necessario un percorso più breve qui, quindi impazzisci!
- Anche se non è necessario trovare il percorso più breve, qualsiasi cella nel percorso (percorso escluso Marlin o nemo) non può essere adiacente a più di altre due celle nel percorso.
- Il percorso non dovrebbe attraversare le tessere
marlin
onemo
, poiché confonderebbe i pesciolini nella scelta di una direzione. - Come al solito, è possibile scrivere un programma o una funzione, prendendo input tramite STDIN (o equivalente più vicino), argomento della riga di comando o parametro di funzione e producendo output tramite STDOUT (o equivalente più vicino), valore di ritorno o parametro di funzione (out).
- Se non è possibile immettere più righe, è possibile supporre che la griglia sia unita dal
|
carattere anziché\n
. Puoi anche prendere l'input come una matrice di righe della griglia.
Questo è il golf del codice, quindi vince la voce più breve in byte.
k
precedentel
in marlin? (facendo il percorso da n in marlin a nemo)