슈퍼 마리오 갤럭시 는마리오가 가로 질러 가면서 줄어드는 플랫폼으로 타일 된2 개의 마름모꼴 8 면체 * 행성을 특징으로합니다. 마리오가 삼각형 구멍에 빠지거나 이전에 만진 타일에 의해 남겨진 틈에 빠지면 코어의 블랙홀에 의해 소비됩니다. (시계 : Hurry-Scurry Galaxy , Sea Slide Galaxy )
이미지 : MarioWiki.com
(행성을 2x3 "브릿지"에 의해 서로 분리하고 연결 한 2x2x2 큐브로 생각할 수 있습니다.)
불행히도, 내 컨트롤러가 매우 손상 되었기 때문에 Mario는 점프 할 수 없으며 4 개의 기본 방향으로 제한됩니다. 또한 Mario는 매우 느리게 움직이며, 그 뒤에 플랫폼이 먼저 사라지지 않으면 한 단계라도 되돌릴 수 없습니다.
카메라가 항상 Mario의 머리 위에 있고 2x2 얼굴의 오른쪽 하단에서 시작한다고 가정 해 봅시다.
■ ■
■ ■
■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ M ■ ■ ■
■ ■
■ ■
■ ■
당신의 프로그램은 U
D
L
R
일련의 단계까지 지구를 돌아 다니는 마리오의 산책을 나타내는 방향 목록 (위, 아래, 왼쪽, 오른쪽)을 취할 것입니다. 이 프로그램은 마리오가 여전히 살아 있고 걷는다는 것을 나타내는 하나, 그리고 그의 걷는 곳 어딘가에있는 마리오가 수축하는 위성에 빠졌다는 것을 나타내는 두 가지 별개의 출력 중 하나를 출력 할 수 있습니다.
RR: ■ ■ RRD: ■ ■ RRL: ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ □ □ M ■ ■ ■ ■ ■ □ □ □ ■ ■ ■ ■ ■ □ M □ ■
■ ■ \ ■ ■ M ■ ■ \
■ ■ Let's-a go! ■ ■ \ ■ ■ W-aaaaaaaaaahh!
■ ■ ■ ■ W-aaaaaaaaaahh! ■ ■
물론 위의 다이어그램과 달리 3D를 고려해야합니다. 시나리오를보다 잘 시각화하는 데 도움이되는 다이어그램은 다음과 같습니다.
Top 2x2 face
<- clockwise anticlockwise ->
- ■ - ■ - ■ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Left and right
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ M ■ ■ ■ ■ ■ ■ ■ ■ ■ edges wrap around.
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
<- anticlockwise clockwise ->
Bottom 2x2 face
따라서이 다이어그램에 따르면 UUUUURRRR
다음과 같이 보일 수 있습니다.
- ■ - ■ - □ - ■ -
/ \ / \ / \ / \
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ □ □ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
그리고 UUUUUUUUULURRRRRR
다음과 같이 보일 수 있습니다 :
- ■ - ■ - □ - □ -
/ \ / \ / \ / \
■ ■ ■ ■ □ ■ ■ □
■ ■ ■ ■ □ ■ ■ □
-> □ ■ ■ ■ □ ■ ■ □ ->
<- □ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ M □ □ □ □ □ <-
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■
\ / \ / \ / \ /
- ■ - ■ - ■ - ■ -
가장 짧은 프로그램 바이트 수 w-aaaaaaaaaahh!
테스트 사례
출력 1 : 여전히 살아남
DDDDDLUUUUU
-마리오는 다리를 건너 갔다가 돌아옵니다.
RRRRDDDDLLL
-마리오는 삼각형으로 걸어갑니다.
LLLLLLUUUUUURRRRR
-마리오는 더 큰 삼각형으로 걷습니다.
ULLDRDDDRU
마리오는 위험에 처해있다.
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRR
-마리오는 틀에 얽매이지 않는 길을 ... 위험에 처하게됩니다.
마리오는 모든 타일을 정확히 한 번 교차합니다.
DDDDLUUUULLLLDDDLUUULLLLDDDDLUUUULLLLDDDLUUULLLURRRUUURDDDRRRRUUURDDDRRRRUUURDDDRRRRUUUUURDDDDD
DLDRDLDLLLDRRRDDDDLLLLLLLLLDRRRRRRRRRDDDDLLLDRRRDDDRUUURRRRULLLLUUUURRRULLLUUUUURDRURDRUURULURU
출력 2 : W-aaaaaaaaaahh!
LLR
-마리오는 걸음을 되 찾으려고합니다.
UULDR
-마리오는 타일을 두 번 교차시키고 공중으로 들어갑니다.
RRDDDDD
-마리오는 첫 번째 D에서 다리를 걷습니다 (다음 단계는 무시).
RRRRDDDDLLLL
-마리오는 삼각형으로 걸어 시작 타일을 통과합니다.
LLLLLLUUUUUURRRRRR
-마리오는 더 큰 삼각형으로 걸어 시작 타일을 통과합니다.
UUUUUUUUUUUUUUUUUUUU
-마리오는 지구 주위를 걷다가 시작 타일을 통과합니다.
RURDRURDRDLDRDLDLDLULDLLUU
-마리오는 틀에 얽매이지 않는 길을 잃고 방향이 바뀝니다.
그가 처한 위험을 깨닫는 마리오는 선택의 여지가 없습니다.
ULLDRDDDRUUU
ULLDRDDDRUUL
ULLDRDDDRUUR
ULLDRDDDRUUD
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRR
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRU
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRL
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRD
마지막으로 "Mario는 모든 타일을 정확히 한 번 교차합니다"의 테스트 사례를 복사하고 임의로 한 단계 씩 변경하거나 추가합니다. 마리오는 넘어 져야한다. (끝에 단계를 추가하면 Mario가 Power Star를 갖기 위해 넘어집니다!)
* 일부면이 정사각형이 아니기 때문에 칸 틸라 큐브 가 더 정확한 용어 일 것입니다.
R
. 내 코드가 올바른지 확인하기 위해 종이 에이 작업을 수행했습니다.