La sfida
Data una tavola bagatelle come quella qui sotto:
| |
| /\ / |
| \ /|
| \ \ /\ \ |
| \ / \ |
|\ / / \ |
| \ / \ |
| \ |
| \ / \ /\ \ |
|\ / / \ /|
| / |
| /\ / / |
| / |
|\ / / / |
| |
----------------------
il tuo compito è trasformare un elenco di "tiri" in un punteggio.
Il tabellone avrà sempre 20 caratteri (più 2 bordi) di larghezza, ma di altezza variabile. Ogni "tiro" è un numero che rappresenta il punto in cui la palla cade nel tabellone, a partire da 0 per l'estrema sinistra fino a 19 per l'estrema destra. Ogni palla cadrà verso il basso a meno che non incontri a /o a \. L'incontro a /sposta la palla di una colonna a sinistra, e \sposta la palla di una colonna a destra. Dopo essere stata spostata, la palla continua dritta come prima. Il punteggio per un tiro dipende da dove la palla colpisce il fondo del tabellone.
I punteggi per ciascuna posizione finale sono i seguenti:
| |
----------------------
01234567899876543210
e sono uguali per tutte le schede. La prima e l'ultima riga saranno sempre vuote. La palla è garantito per raggiungere il fondo, indipendentemente da dove è caduto da, quindi non ci saranno tavole in cui si può ottenere intrappolati dal \/, \|o |/combinazioni.
Ingresso
L'input sarà su STDIN e sarà costituito dalla scheda seguita da una riga vuota seguita da un elenco separato da spazi di numeri che rappresentano i tiri.
Produzione
L'uscita dovrebbe essere il punteggio totale per il gioco dato.
Un paio di esempi
Ingresso
| |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| |
| |
----------------------
1 4 2 19 0 2 4 3 17 13 16
Produzione
9
Ingresso
| |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
----------------------
15 10 3 8 18 19 0 6 7 10
Produzione
72
Ingresso
| |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| |
----------------------
1 4 18 17 14 2 0 19 15
Produzione
18
Script di test
Ho usato alcuni script di test scritti da Joey e Ventero (spero che non gli dispiaccia ...) per creare alcuni test per questo compito: -
Uso: ./test [your program and its arguments]
Questo è codegolf: la soluzione più corta vince.