Su consiglio della signora Pac-Man, preoccupata per il suo sovrappeso, Pac-Man ha deciso di tenere traccia della sua assunzione giornaliera di Pac-Dot. Aiutalo a contare il numero di Pac-Dots su un determinato percorso nel labirinto!
Il labirinto
Per aiutarti a costruire la tua codifica del labirinto, puoi ottenere alcuni dati grezzi qui .
Il viaggio di Pac-Man
Nel contesto di questa sfida, si applicano le seguenti regole:
- Innanzitutto, la buona notizia: i fantasmi non ci sono.
- Pac-Man inizia sempre la sua corsa nella posizione indicata nella foto sopra, dirigendosi verso est. Non è presente Pac-Dot nella posizione iniziale.
- Fintanto che segue un percorso rettilineo, continua ad avanzare verso i quadrati successivi.
- Quando incontra una svolta di 90 ° senza nessun altro percorso disponibile (quadrati arancioni sulla mappa), prende automaticamente e sistematicamente la svolta.
- Quando incontra un incrocio in cui sono disponibili diversi percorsi (quadrati verdi sulla mappa), può continuare nella stessa direzione - se applicabile - o scegliere un'altra direzione (incluso fare un'inversione a U).
- Quando Pac-Man attraversa una delle uscite nella parte centrale sinistra o centrale destra del labirinto, ricompare immediatamente dalla parte opposta.
- Pac-Man mangia tutti i Pac-Dots sul percorso che sta seguendo. Una volta che un Pac-Dot è stato mangiato, viene rimosso dal labirinto.
La sfida
Ingresso
Ti verrà data una stringa che descrive il comportamento di Pac-Man sulle giunzioni che sta per raggiungere. Questa stringa sarà composta dai seguenti caratteri:
L
: girare a 90 ° a sinistraR
: girare a 90 ° verso destraF
: andare avanti (nessun cambio di direzione)B
: tornare indietro (fare un'inversione a U)
Quando tutti i personaggi sono stati elaborati, Pac-Man si ferma al prossimo incrocio che incontra.
Produzione
Devi stampare o stampare il numero di Pac-Dots consumati lungo il percorso di input.
Regole
- È possibile scrivere un programma completo o una funzione.
- Puoi prendere l'input in maiuscolo o minuscolo, come una stringa o una matrice di caratteri. Puoi anche usare altri caratteri (ma solo un carattere per direzione) o numeri interi in
[0 .. 9]
. In tal caso, specificalo chiaramente nella tua risposta. - Si può presumere che l'input sia sempre valido. (Il jsFiddle in basso rileverà errori, ma non dovresti farlo.)
- Questo è code-golf, quindi vince il codice più breve in byte.
- Sono vietate le scappatoie standard.
Suggerimento
Potrebbe non essere necessario né ottimale memorizzare la forma esatta del labirinto.
Casi di prova e demo
I seguenti casi di test - o qualsiasi altro input - possono essere testati in questo jsFiddle .
1. Input : ""
Output : 1
Comment: Pac-Man just advances to the first junction, eats the Pac-Dot on it and stops.
2. Input : "L"
Output : 7
3. Input : "FFR"
Output : 13
4. Input : "LFLR"
Output : 17
Comment: Pac-Man will exit on the middle right side and re-appear on the left side.
5. Input : "BBBB"
Output : 2
6. Input : "BRRFFFL"
Output : 15
7. Input : "LFFRLFFFFRF"
Output : 50
8. Input : "BRFRLRFRLFR"
Output : 54
Comment: Pac-Man will exit on the middle left side and re-appear on the right side.
9. Input : "FFLRLFFLLLLFFBFLFLRRRLRRFRFLRLFFFLFLLLLFRRFBRLLLFBLFFLBFRLLR"
Output : 244
Comment: All cleared!