In Super Mario Galaxy gibt es zwei rhombicuboctahedron-förmige * Planeten, die mit Plattformen gekachelt sind, die schrumpfen, wenn Mario überquert wird . Sollte Mario in ein dreieckiges Loch oder in eine Lücke fallen, die ein zuvor berührtes Plättchen hinterlassen hat, wird er vom schwarzen Loch im Kern verzehrt. (Siehe: Eile-Scurry-Galaxie , Sea Slide-Galaxie )
Bild: MarioWiki.com
(Sie können sich den Planeten als einen 2x2x2-Würfel vorstellen, dessen Gesichter durch 2x3 "Brücken" voneinander getrennt und miteinander verbunden wurden.)
Da mein Controller sehr kaputt ist, kann Mario leider nicht springen und ist auf die vier Hauptrichtungen beschränkt. Außerdem bewegt sich Mario sehr langsam und kann nicht einmal einen Schritt zurückverfolgen, ohne dass die Plattform hinter ihm verschwindet.
Nehmen wir an, die Kamera befindet sich immer über Marios Kopf und er beginnt rechts unten auf einem 2x2-Gesicht:
■ ■
■ ■
■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ M ■ ■ ■
■ ■
■ ■
■ ■
Ihr Programm enthält eine Liste oder eine Reihe von Anweisungen U
D
L
R
(oben, unten, links, rechts), die Marios Umrundung des Planeten in mehreren Schritten darstellen. Das Programm kann eine von zwei verschiedenen Ausgaben ausgeben: eine, die darstellt, dass Mario noch lebt und läuft, und die andere, die darstellt, dass Mario irgendwo auf seinem Weg in den schrumpfenden Satelliten gefallen ist.
RR: ■ ■ RRD: ■ ■ RRL: ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ □ □ M ■ ■ ■ ■ ■ □ □ □ ■ ■ ■ ■ ■ □ M □ ■
■ ■ \ ■ ■ M ■ ■ \
■ ■ Let's-a go! ■ ■ \ ■ ■ W-aaaaaaaaaahh!
■ ■ ■ ■ W-aaaaaaaaaahh! ■ ■
Natürlich müssen Sie im Gegensatz zu den obigen Diagrammen die 3D berücksichtigen. Hier ist ein Diagramm, das Ihnen helfen könnte, das Szenario besser zu visualisieren:
Top 2x2 face
<- clockwise anticlockwise ->
- ■ - ■ - ■ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Left and right
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ M ■ ■ ■ ■ ■ ■ ■ ■ ■ edges wrap around.
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
<- anticlockwise clockwise ->
Bottom 2x2 face
Nach diesem Diagramm UUUUURRRR
könnte es also so aussehen:
- ■ - ■ - □ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
Und UUUUUUUUULURRRRRR
könnte so aussehen:
- ■ - ■ - □ - □ -
/ \ / \ / \ / \
■ ■ ■ ■ □ ■ ■ □
■ ■ ■ ■ □ ■ ■ □
-> □ ■ ■ ■ □ ■ ■ □ ->
<- □ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M □ □ □ □ □ <-
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
Möge das kürzeste Programm in Bytes w-aaaaaaaaahh!
Testfälle
Ausgang 1: noch am Leben
DDDDDLUUUUU
- Mario geht über eine Brücke und zurück.
RRRRDDDDLLL
- Mario geht in einem Dreieck.
LLLLLLUUUUUURRRRR
- Mario geht in einem größeren Dreieck.
ULLDRDDDRU
- Mario gerät in Gefahr.
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRR
- Mario geht einen unkonventionellen Weg ... und gerät in Gefahr.
Mario überquert jedes Plättchen genau einmal.
DDDDLUUUULLLLDDDLUUULLLLDDDDLUUUULLLLDDDLUUULLLURRRUUURDDDRRRRUUURDDDRRRRUUURDDDRRRRUUUUURDDDDD
DLDRDLDLLLDRRRDDDDLLLLLLLLLDRRRRRRRRRDDDDLLLDRRRDDDRUUURRRRULLLLUUUURRRULLLUUUUURDRURDRUURULURU
Ausgang 2: W-aaaaaaaaaahh!
LLR
- Mario versucht einen Schritt zurückzuverfolgen und fällt ab.
UULDR
- Mario versucht zweimal eine Fliese zu überqueren und tritt in die Luft.
RRDDDDD
- Mario geht beim ersten D von einer Brücke (ignoriere alle folgenden Schritte).
RRRRDDDDLLLL
- Mario geht im Dreieck und fällt durch das Startplättchen.
LLLLLLUUUUUURRRRRR
- Mario geht in einem größeren Dreieck und fällt durch das Startplättchen.
UUUUUUUUUUUUUUUUUUUU
- Mario umrundet den Planeten und fällt durch das Startplättchen.
RURDRURDRDLDRDLDLDLULDLLUU
- Mario geht einen unkonventionellen Weg und wird desorientiert.
Mario, der die Gefahr erkennt, in der er sich befindet, hat keine andere Wahl.
ULLDRDDDRUUU
ULLDRDDDRUUL
ULLDRDDDRUUR
ULLDRDDDRUUD
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRR
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRU
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRL
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRD
Kopieren Sie abschließend einen beliebigen Testfall aus "Mario kreuzt jedes Plättchen genau einmal" und ändern oder fügen Sie einen Schritt nach dem Zufallsprinzip hinzu. Mario sollte fallen. (Wenn Sie einen Schritt zum Ende hinzufügen, fällt Mario, um den Power Star zu ergreifen!)
* Cantellated Würfel wäre ein richtigerer Begriff, da einige Gesichter nicht quadratisch sind, aber Sie müssen zugeben - "Rhombicuboctahedron" fließt besser.
R
. Ich habe dies auf Papier ausgearbeitet, um sicherzustellen, dass mein Code korrekt ist.