Super Mario Galaxy comprend deuxplanètes en forme de rhombicuboctaèdre * carrelées de plates-formes qui rétrécissent lorsque Mario traverse. Si Mario tombe dans un trou triangulaire ou un espace laissé par une tuile qu'il a précédemment touchée, il sera consommé par le trou noir au cœur. (Regardez: Hurry-Scurry Galaxy , Sea Slide Galaxy )
Image: MarioWiki.com
(Vous pouvez considérer la planète comme un cube 2x2x2 dont les faces ont été détachées et connectées les unes aux autres par des "ponts" 2x3.)
Malheureusement, comme mon contrôleur est très cassé, Mario ne peut pas sauter et est limité aux quatre directions cardinales. De plus, Mario se déplace très lentement et ne peut même pas revenir en arrière sans avoir d'abord fait disparaître la plateforme derrière lui.
Supposons que la caméra soit toujours au-dessus de la tête de Mario et qu'il commence en bas à droite d'un visage 2x2:
■ ■
■ ■
■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ M ■ ■ ■
■ ■
■ ■
■ ■
Votre programme prendra une liste ou une chaîne de directions U
D
L
R
(haut, bas, gauche, droite), représentant la marche de Mario autour de la planète jusqu'à une série d'étapes. Le programme peut produire l'une des deux sorties distinctes: l'une représentant que Mario est toujours vivant et en marche, et l'autre représentant que quelque part le long de sa marche, Mario est tombé dans le satellite rétrécissant.
RR: ■ ■ RRD: ■ ■ RRL: ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ □ □ M ■ ■ ■ ■ ■ □ □ □ ■ ■ ■ ■ ■ □ M □ ■
■ ■ \ ■ ■ M ■ ■ \
■ ■ Let's-a go! ■ ■ \ ■ ■ W-aaaaaaaaaahh!
■ ■ ■ ■ W-aaaaaaaaaahh! ■ ■
Bien sûr, contrairement aux schémas ci-dessus, vous devrez prendre en compte la 3D. Voici un diagramme qui pourrait vous aider à mieux visualiser le scénario:
Top 2x2 face
<- clockwise anticlockwise ->
- ■ - ■ - ■ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Left and right
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ M ■ ■ ■ ■ ■ ■ ■ ■ ■ edges wrap around.
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
<- anticlockwise clockwise ->
Bottom 2x2 face
Donc, selon ce diagramme, cela UUUUURRRR
pourrait ressembler à ceci:
- ■ - ■ - □ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
Et UUUUUUUUULURRRRRR
pourrait ressembler à ceci:
- ■ - ■ - □ - □ -
/ \ / \ / \ / \
■ ■ ■ ■ □ ■ ■ □
■ ■ ■ ■ □ ■ ■ □
-> □ ■ ■ ■ □ ■ ■ □ ->
<- □ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M □ □ □ □ □ <-
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
Que le programme le plus court en octets w-aaaaaaaaaahh!
Cas de test
Sortie 1: toujours en vie
DDDDDLUUUUU
- Mario traverse un pont et revient.
RRRRDDDDLLL
- Mario marche en triangle.
LLLLLLUUUUUURRRRR
- Mario marche dans un triangle plus grand.
ULLDRDDDRU
- Mario se met en danger.
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRR
- Mario prend une route non conventionnelle ... et se met en danger.
Mario traverse chaque tuile exactement une fois.
DDDDLUUUULLLLDDDLUUULLLLDDDDLUUUULLLLDDDLUUULLLURRRUUURDDDRRRRUUURDDDRRRRUUURDDDRRRRUUUUURDDDDD
DLDRDLDLLLDRRRDDDDLLLLLLLLLDRRRRRRRRRDDDDLLLDRRRDDDRUUURRRRULLLLUUUURRRULLLUUUUURDRURDRUURULURU
Sortie 2: W-aaaaaaaaaahh!
LLR
- Mario tente de revenir sur un pas et tombe.
UULDR
- Mario tente de traverser une tuile deux fois et se met en l'air.
RRDDDDD
- Mario sort d'un pont au premier D (ignorez les étapes suivantes).
RRRRDDDDLLLL
- Mario marche en triangle et tombe à travers la tuile de départ.
LLLLLLUUUUUURRRRRR
- Mario marche dans un triangle plus grand et tombe à travers la tuile de départ.
UUUUUUUUUUUUUUUUUUUU
- Mario parcourt la planète et tombe à travers la tuile de départ.
RURDRURDRDLDRDLDLDLULDLLUU
- Mario prend une route non conventionnelle et devient désorienté.
Mario, réalisant le péril dans lequel il se trouve, n'a pas le choix.
ULLDRDDDRUUU
ULLDRDDDRUUL
ULLDRDDDRUUR
ULLDRDDDRUUD
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRR
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRU
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRL
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRD
Enfin, copiez n'importe quel scénario de test de "Mario traverse chaque tuile exactement une fois" et modifiez ou ajoutez une étape au hasard. Mario devrait tomber. (Si vous ajoutez une étape à la fin, Mario tombe pour attraper la Power Star!)
* Le cube cantellé serait un terme plus correct car certaines faces ne sont pas carrées, mais vous devez admettre que le "rhombicuboctaèdre" coule mieux.
R
. J'ai travaillé cela sur papier pour être sûr que mon code est correct.