Sfida
Hai dato una mappa a un amico che assomiglia un po 'a questo:
|
/
|
/
|
\
|
\
D
Una semplice mappa che inizia in alto e termina in basso. Purtroppo, il tuo amico non lo capisce. Puoi decodificare la mappa in modo che possa leggerla?
Ingresso
L'ingresso è una stringa di caratteri costituiti |, /, \, D, ^, Y, (spazio) e ritorni a capo.
|dice di rimanere nella stessa colonna.\indica di spostarsi sulla colonna a destra e in basso 1./indica di spostarsi sulla colonna a sinistra e in basso 1.Dsegna la destinazione.^(se presente) racconta di una divisione nel percorso.Y(se presente) racconta di un ricongiungimento di percorsi. Trattalo come un|.
L'input sarà organizzato in modo tale da creare una sorta di percorso:
|
|
\
|
^
/ \
/ |
D |
Ci sarà sempre uno spazio tra due percorsi e tutti i percorsi si ricongiungeranno o raggiungeranno l'ultima riga dell'input. Ci sarà solo una divisione per mappa. Non c'è limite alla lunghezza della mappa di input. Non ci saranno mai più di due percorsi.
Produzione
L'output dovrebbe essere una stringa di direzioni.
- " L " dovrebbe dire al vostro amico a muoversi L EFT e prendere 1 passo in avanti.
- " R " dovrebbe dire al vostro amico a muoversi R volo e prendere 1 passo in avanti.
- " F " dovrebbe dire al tuo amico di fare un passo avanti.
Per la mappa di esempio di input, l'output sarebbe il seguente:
F F L F R R R
Nota che il tuo amico sta iniziando nella parte superiore della mappa e rivolto verso il basso. Dai le indicazioni dalla sua prospettiva. Per un'istanza di "^", il programma deve essere in grado di scegliere il percorso che conduce alla destinazione (D). Se i due percorsi si ricombinano, il programma deve scegliere il percorso più diritto (quello con il maggior numero di |s) da seguire. Indicazioni devono essere separati da spazi, e devono terminare su D .
Esempi
Ingresso
|
|
\
\
^
/ |
| |
\ |
\ \
\ \
\ /
Y
D
Produzione
F F L L L F F F L L R F
Poiché il percorso più a sinistra contiene solo 1 |, utilizziamo il percorso più a destra che ha 3.
Ingresso
\
|
/
|
\
|
/
D
Produzione
L F R F L F R
Ingresso
/
\
/
\
^
\ \
D \
Produzione
R L R L R L
Altri dettagli
- Questo è il golf del codice, quindi vince la persona con il codice più corto entro mercoledì 19 agosto prossimo.
- Feedback costruttivo benvenuto e molto apprezzato.
- Parzialmente ispirato a A Map to Hidden Treasure
- Sentiti libero di cambiare il titolo in qualcosa di più creativo.
- Se trovi errori che ho commesso, correggili.
- E ovviamente divertiti.
Grazie!
Un po 'in ritardo, forse, ma UndefinedFunction è il codice vincente in JavaScript! Grazie a tutti quelli che sono entrati. Non saranno accettate altre iscrizioni.
Lper i ^due e due Lper i due /? E perché ne hai aggiunti altri due Falla fine Ydell'esempio?
L L, che penso dovrebbe essereL L L. L'esempio conYha ancora un1alla fine e sembra avere anche altri errori. Ho letto la mappa comeF F R R R F F F R R L Fse avessi capito correttamente le regole.