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, UUUUURRRR
potrebbe assomigliare a questo:
- ■ - ■ - □ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
E UUUUUUUUULURRRRRR
potrebbe 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.