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, UUUUURRRRpodría verse así:
- ■ - ■ - □ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
Y UUUUUUUUULURRRRRRpodrí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.
