Super Mario Galaxy presenta duepianeti a forma di romboedroedro * piastrellati con piattaforme che si restringono mentre Mario attraversa. Se Mario cade in un buco triangolare o in uno spazio lasciato da una tessera che ha toccato in precedenza, verrà consumato dal buco nero nel nucleo. (Guarda: Hurry-Scurry Galaxy , Sea Slide Galaxy )
Immagine: MarioWiki.com
(Puoi pensare al pianeta come a un cubo 2x2x2 le cui facce sono state staccate e collegate tra loro da "ponti" 2x3.)
Sfortunatamente, dato che il mio controller è molto rotto, Mario non può saltare ed è limitato alle quattro direzioni cardinali. Inoltre, Mario si muove molto lentamente e non può ripercorrere nemmeno un passo senza prima far sparire la piattaforma dietro di lui.
Supponiamo che la videocamera sia sempre sopra la testa di Mario e che inizi in basso a destra su una faccia 2x2:
■ ■
■ ■
■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ M ■ ■ ■
■ ■
■ ■
■ ■
Il tuo programma prenderà un elenco o una serie di direzioni U D L R(su, giù, sinistra, destra), che rappresentano la passeggiata di Mario intorno al pianeta fino a una serie di passaggi. Il programma può produrre uno di due distinti output: uno che rappresenta che Mario è ancora vivo e che cammina, e l'altro che lo rappresenta da qualche parte lungo il suo cammino, Mario è caduto nel satellite che si restringe.
RR: ■ ■ RRD: ■ ■ RRL: ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ □ □ M ■ ■ ■ ■ ■ □ □ □ ■ ■ ■ ■ ■ □ M □ ■
■ ■ \ ■ ■ M ■ ■ \
■ ■ Let's-a go! ■ ■ \ ■ ■ W-aaaaaaaaaahh!
■ ■ ■ ■ W-aaaaaaaaaahh! ■ ■
Ovviamente, a differenza dei diagrammi di cui sopra, dovrai prendere in considerazione il 3D. Ecco un diagramma che potrebbe aiutarti a visualizzare meglio lo scenario:
Top 2x2 face
<- clockwise anticlockwise ->
- ■ - ■ - ■ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Left and right
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ M ■ ■ ■ ■ ■ ■ ■ ■ ■ edges wrap around.
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
<- anticlockwise clockwise ->
Bottom 2x2 face
Quindi, secondo questo diagramma, UUUUURRRRpotrebbe assomigliare a questo:
- ■ - ■ - □ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
E UUUUUUUUULURRRRRRpotrebbe apparire così:
- ■ - ■ - □ - □ -
/ \ / \ / \ / \
■ ■ ■ ■ □ ■ ■ □
■ ■ ■ ■ □ ■ ■ □
-> □ ■ ■ ■ □ ■ ■ □ ->
<- □ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M □ □ □ □ □ <-
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
Possa il programma più breve in byte w-aaaaaaaaaahh!
Casi test
Uscita 1: Still Alive
DDDDDLUUUUU - Mario attraversa un ponte e torna indietro.
RRRRDDDDLLL - Mario cammina in un triangolo.
LLLLLLUUUUUURRRRR - Mario cammina in un triangolo più grande.
ULLDRDDDRU - Mario si mette in pericolo.
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRR - Mario prende una strada non convenzionale ... e si mette in pericolo.
Mario attraversa ogni tessera esattamente una volta.
DDDDLUUUULLLLDDDLUUULLLLDDDDLUUUULLLLDDDLUUULLLURRRUUURDDDRRRRUUURDDDRRRRUUURDDDRRRRUUUUURDDDDD
DLDRDLDLLLDRRRDDDDLLLLLLLLLDRRRRRRRRRDDDDLLLDRRRDDDRUUURRRRULLLLUUUURRRULLLUUUUURDRURDRUURULURU
Uscita 2: W-aaaaaaaaaahh!
LLR - Mario tenta di fare un passo indietro e cade.
UULDR - Mario tenta di attraversare una tessera due volte e si mette in aria.
RRDDDDD - Mario esce da un ponte alla prima D (ignora tutti i passaggi seguenti).
RRRRDDDDLLLL - Mario cammina in un triangolo e cade attraverso la tessera iniziale.
LLLLLLUUUUUURRRRRR - Mario cammina in un triangolo più grande e cade attraverso la tessera iniziale.
UUUUUUUUUUUUUUUUUUUU - Mario cammina lungo il pianeta e cade attraverso la tessera iniziale.
RURDRURDRDLDRDLDLDLULDLLUU - Mario prende una strada non convenzionale e diventa disorientato.
Mario, rendendosi conto del pericolo in cui si trova, non ha altra scelta.
ULLDRDDDRUUU ULLDRDDDRUUL ULLDRDDDRUUR ULLDRDDDRUUD RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRR RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRU RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRL RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRD
Infine, copia qualsiasi caso di test da "Mario attraversa ogni tessera esattamente una volta" e modifica o aggiungi un passaggio a caso. Mario dovrebbe cadere. (Se aggiungi un passaggio alla fine, Mario cade per afferrare la Power Star!)
* Cubo cantellato sarebbe un termine più corretto in quanto alcune facce non sono quadrate, ma devi ammettere che "rombicubottaedro" scorre più bello.
R. L'ho elaborato su carta per essere sicuro che il mio codice sia corretto.
