Super Mario Galaxy presenta dosplanetas con forma de rombocuboctaedro * en mosaico con plataformas que se encogen a medida que Mario se cruza. Si Mario cae en un agujero triangular o en un espacio dejado por un azulejo que tocó anteriormente, el agujero negro en el núcleo lo consumirá. (Ver: Galaxy apresurada , galaxia de Sea Slide )
Imagen: MarioWiki.com
(Puedes pensar en el planeta como un cubo de 2x2x2 cuyas caras se han separado y conectado entre sí mediante 2x3 "puentes").
Desafortunadamente, dado que mi controlador está muy roto, Mario no puede saltar y está limitado a las cuatro direcciones cardinales. Además, Mario se mueve muy lentamente y no puede retroceder ni un solo paso sin que primero desaparezca la plataforma detrás de él.
Supongamos que la cámara siempre está por encima de la cabeza de Mario y comienza en la parte inferior derecha de una cara de 2x2:
■ ■
■ ■
■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ M ■ ■ ■
■ ■
■ ■
■ ■
Su programa tomará una lista o cadena de direcciones, U
D
L
R
(arriba, abajo, izquierda, derecha), que representa la caminata de Mario alrededor del planeta hasta una serie de pasos. El programa puede generar una de dos salidas distintas: una que representa que Mario todavía está vivo y caminando, y la otra que representa que en algún momento de su caminata, Mario ha caído en el Satélite Reductor.
RR: ■ ■ RRD: ■ ■ RRL: ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ □ □ M ■ ■ ■ ■ ■ □ □ □ ■ ■ ■ ■ ■ □ M □ ■
■ ■ \ ■ ■ M ■ ■ \
■ ■ Let's-a go! ■ ■ \ ■ ■ W-aaaaaaaaaahh!
■ ■ ■ ■ W-aaaaaaaaaahh! ■ ■
Por supuesto, a diferencia de los diagramas anteriores, tendrá que tener en cuenta el 3D. Aquí hay un diagrama que puede ayudarlo a visualizar mejor el escenario:
Top 2x2 face
<- clockwise anticlockwise ->
- ■ - ■ - ■ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Left and right
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ M ■ ■ ■ ■ ■ ■ ■ ■ ■ edges wrap around.
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
<- anticlockwise clockwise ->
Bottom 2x2 face
Entonces, de acuerdo con este diagrama, UUUUURRRR
podría verse así:
- ■ - ■ - □ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
Y UUUUUUUUULURRRRRR
podría verse así:
- ■ - ■ - □ - □ -
/ \ / \ / \ / \
■ ■ ■ ■ □ ■ ■ □
■ ■ ■ ■ □ ■ ■ □
-> □ ■ ■ ■ □ ■ ■ □ ->
<- □ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M □ □ □ □ □ <-
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
¡Que el programa más corto en bytes w-aaaaaaaaaahh!
Casos de prueba
Salida 1: todavía vivo
DDDDDLUUUUU
- Mario cruza un puente y regresa.
RRRRDDDDLLL
- Mario camina en un triángulo.
LLLLLLUUUUUURRRRR
- Mario camina en un triángulo más grande.
ULLDRDDDRU
- Mario se pone en peligro.
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRR
- Mario toma una ruta poco convencional ... y se pone en peligro.
Mario cruza cada ficha exactamente una vez.
DDDDLUUUULLLLDDDLUUULLLLDDDDLUUUULLLLDDDLUUULLLURRRUUURDDDRRRRUUURDDDRRRRUUURDDDRRRRUUUUURDDDDD
DLDRDLDLLLDRRRDDDDLLLLLLLLLDRRRRRRRRRDDDDLLLDRRRDDDRUUURRRRULLLLUUUURRRULLLUUUUURDRURDRUURULURU
Salida 2: W-aaaaaaaaaahh!
LLR
- Mario intenta retroceder un paso y se cae.
UULDR
- Mario intenta cruzar un azulejo dos veces y sale al aire.
RRDDDDD
- Mario sale de un puente en la primera D (ignore los siguientes pasos).
RRRRDDDDLLLL
- Mario camina en un triángulo y cae a través del mosaico inicial.
LLLLLLUUUUUURRRRRR
- Mario camina en un triángulo más grande y cae a través del mosaico inicial.
UUUUUUUUUUUUUUUUUUUU
- Mario camina alrededor del planeta y cae a través del mosaico inicial.
RURDRURDRDLDRDLDLDLULDLLUU
- Mario toma una ruta poco convencional y se desorienta.
Mario, al darse cuenta del peligro en el que se encuentra, no tiene otra opción.
ULLDRDDDRUUU
ULLDRDDDRUUL
ULLDRDDDRUUR
ULLDRDDDRUUD
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRR
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRU
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRL
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRD
Finalmente, copie cualquier caso de prueba de "Mario cruza cada mosaico exactamente una vez" y cambie o agregue un paso al azar. Mario debería caerse. (¡Si agrega un paso al final, Mario cae para agarrar la Power Star!)
* Cubo cantelado sería un término más correcto ya que algunas caras no son cuadradas, pero hay que admitir que el "rombocuboctaedro" fluye mejor.
R
. He resuelto esto en papel para asegurarme de que mi código sea correcto.