Super Mario Galaxy zawiera dwieplanety w kształcie rombu o kształcie kwadratu * wyłożone kafelkami z platformami, które kurczą się, gdy Mario biegnie. Jeśli Mario wpadnie w trójkątną dziurę lub szczelinę pozostawioną przez wcześniej dotknięty kafelek, zostanie pochłonięty przez czarną dziurę w rdzeniu. (Oglądaj: Hurry-Scurry Galaxy , Sea Slide Galaxy )
Zdjęcie: MarioWiki.com
(Możesz myśleć o planecie jako sześcianie 2x2x2, którego twarze zostały odłączone i połączone ze sobą 2x3 „mostami”.)
Niestety, ponieważ mój kontroler jest bardzo zepsuty, Mario nie może skakać i ogranicza się do czterech głównych kierunków. Dodatkowo Mario porusza się bardzo powoli i nie może cofnąć się nawet o jeden krok bez uprzedniego zniknięcia platformy za sobą.
Załóżmy, że kamera zawsze znajduje się nad głową Mario, a on zaczyna w prawym dolnym rogu twarzy 2x2:
■ ■
■ ■
■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ M ■ ■ ■
■ ■
■ ■
■ ■
Twój program pobierze listę lub ciąg wskazówek U
D
L
R
(w górę, w dół, w lewo, w prawo), reprezentujących marsz Mario wokół planety do tej pory jako szereg kroków. Program może wysyłać jeden z dwóch różnych wyników: jeden reprezentujący, że Mario wciąż żyje i idzie, a drugi reprezentujący to, że gdzieś w trakcie marszu Mario wpadł do zmniejszającej się satelity.
RR: ■ ■ RRD: ■ ■ RRL: ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ □ □ M ■ ■ ■ ■ ■ □ □ □ ■ ■ ■ ■ ■ □ M □ ■
■ ■ \ ■ ■ M ■ ■ \
■ ■ Let's-a go! ■ ■ \ ■ ■ W-aaaaaaaaaahh!
■ ■ ■ ■ W-aaaaaaaaaahh! ■ ■
Oczywiście, w przeciwieństwie do powyższych diagramów, będziesz musiał wziąć pod uwagę 3D. Oto schemat, który może pomóc w lepszej wizualizacji scenariusza:
Top 2x2 face
<- clockwise anticlockwise ->
- ■ - ■ - ■ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Left and right
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ M ■ ■ ■ ■ ■ ■ ■ ■ ■ edges wrap around.
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
<- anticlockwise clockwise ->
Bottom 2x2 face
Zgodnie z tym diagramem UUUUURRRR
może wyglądać następująco:
- ■ - ■ - □ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
I UUUUUUUUULURRRRRR
może wyglądać tak:
- ■ - ■ - □ - □ -
/ \ / \ / \ / \
■ ■ ■ ■ □ ■ ■ □
■ ■ ■ ■ □ ■ ■ □
-> □ ■ ■ ■ □ ■ ■ □ ->
<- □ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M □ □ □ □ □ <-
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
Niech najkrótszy program w bajtach w-aaaaaaaaaah!
Przypadki testowe
Wyjście 1: wciąż żywe
DDDDDLUUUUU
- Mario idzie przez most iz powrotem.
RRRRDDDDLLL
- Mario chodzi w trójkącie.
LLLLLLUUUUUURRRRR
- Mario chodzi w większym trójkącie.
ULLDRDDDRU
- Mario naraża się na niebezpieczeństwo.
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRR
- Mario wybiera niekonwencjonalną drogę ... i naraża się na niebezpieczeństwo.
Mario przecina każdą płytkę dokładnie raz.
DDDDLUUUULLLLDDDLUUULLLLDDDDLUUUULLLLDDDLUUULLLURRRUUURDDDRRRRUUURDDDRRRRUUURDDDRRRRUUUUURDDDDD
DLDRDLDLLLDRRRDDDDLLLLLLLLLDRRRRRRRRRDDDDLLLDRRRDDDRUUURRRRULLLLUUUURRRULLLUUUUURDRURDRUURULURU
Wyjście 2: W-aaaaaaaaaah!
LLR
- Mario próbuje cofnąć się o krok i spada.
UULDR
- Mario próbuje dwukrotnie przejść przez kafelek i wchodzi w powietrze.
RRDDDDD
- Mario wychodzi z mostu w pierwszym D (zignoruj kolejne kroki).
RRRRDDDDLLLL
- Mario chodzi w trójkącie i spada przez płytkę początkową.
LLLLLLUUUUUURRRRRR
- Mario idzie większym trójkątem i spada przez płytkę początkową.
UUUUUUUUUUUUUUUUUUUU
- Mario chodzi dookoła planety i spada przez płytkę początkową.
RURDRURDRDLDRDLDLDLULDLLUU
- Mario wybiera niekonwencjonalną trasę i staje się zdezorientowany.
Mario, zdając sobie sprawę z niebezpieczeństwa, w którym się znajduje, nie ma wyboru.
ULLDRDDDRUUU
ULLDRDDDRUUL
ULLDRDDDRUUR
ULLDRDDDRUUD
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRR
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRU
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRL
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRD
Na koniec skopiuj dowolny przypadek testowy z „Mario krzyżuje każdy kafel dokładnie raz” i zmień lub dodaj losowo jeden krok. Mario powinien upaść. (Jeśli dodasz krok do końca, Mario upada po Power Star!)
* Kantellowany sześcian byłby bardziej poprawnym terminem, ponieważ niektóre twarze nie są kwadratowe, ale musisz przyznać, że „rombowo-kwadratowy” płynie ładniej.
R
. Opracowałem to na papierze, aby upewnić się, że mój kod jest poprawny.