超级马里奥银河(Super Mario Galaxy)拥有两个菱形八面体形状的*行星,它们的平台平铺,随着马里奥(Mario)的掠过而缩小。如果Mario掉入一个三角形的孔或先前触摸过的瓷砖留下的缝隙,他将被核心处的黑洞吞噬。(观看: Hurry-Scurry星系, Sea Slide星系)
(您可以将行星视为一个2x2x2立方体,其面已通过2x3“桥”分离并彼此连接。)
不幸的是,由于我的控制器非常损坏,因此Mario无法跳跃,并且只能在四个基本方向上操作。此外,马里奥动作非常缓慢,即使不先离开身后的平台也无法退一步。
假设相机始终在马里奥的头顶上方,并且从2x2脸部的右下角开始:
■ ■
■ ■
■ ■
■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ M ■ ■ ■
■ ■
■ ■
■ ■
您的程序将采用一个列表或方向字符串U
D
L
R
(上,下,左,右),以一系列步骤代表Mario在地球上的行走。该程序可以输出两个截然不同的输出之一:一个代表马里奥还活着并在行走,另一个代表马里奥在行走中的某个地方掉入了收缩卫星。
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-aaaaaaaaaahahh为单位的最短程序!
测试用例
输出1:仍然有效
DDDDDLUUUUU
-马里奥(Mario)穿过桥,然后返回。
RRRRDDDDLLL
-马里奥走成三角形。
LLLLLLUUUUUURRRRR
-马里奥走在一个更大的三角形中。
ULLDRDDDRU
-马里奥(Mario)身陷险境。
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRR
-马里奥(Mario)走了一条非常规的路线……并使自己陷入危险。
马里奥(Mario)准确地穿过每个瓷砖一次。
DDDDLUUUULLLLDDDLUUULLLLDDDDLUUUULLLLDDDLUUULLLURRRUUURDDDRRRRUUURDDDRRRRUUURDDDRRRRUUUUURDDDDD
DLDRDLDLLLDRRRDDDDLLLLLLLLLDRRRRRRRRRDDDDLLLDRRRDDDRUUURRRRULLLLUUUURRRULLLUUUUURDRURDRUURULURU
输出2:W-aaaaaaaaaahahh!
LLR
-马里奥(Mario)试图退步并掉下。
UULDR
-马里奥(Mario)试图越过瓷砖两次并进入空气。
RRDDDDD
-马里奥(Mario)在第一个D处从桥上走过(忽略任何后续步骤)。
RRRRDDDDLLLL
-马里奥(Mario)行走在一个三角形中,从起始瓷砖上掉下来。
LLLLLLUUUUUURRRRRR
-马里奥(Mario)进入一个较大的三角形,并穿过起始砖块。
UUUUUUUUUUUUUUUUUUUU
-马里奥(Mario)一直绕着地球行走,并从起始地砖掉落。
RURDRURDRDLDRDLDLDLULDLLUU
-马里奥(Mario)走上一条非常规路线,迷失了方向。
马里奥意识到自己处于危险之中,别无选择。
ULLDRDDDRUUU
ULLDRDDDRUUL
ULLDRDDDRUUR
ULLDRDDDRUUD
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRR
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRU
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRL
RURDRURDRDLDRDLDLDLULDLLLLLLLLLLLLLLLLURRRRRRRRRRRRRRD
最后,复制“ Mario准确地跨每个图块一次”中的任何测试用例,并随机更改或添加一个步骤。马里奥应该跌倒。(如果您在最后添加一个步骤,那么马里奥(Mario)会抓住力量之星(Power Star)!)
* 斜角立方体将是一个更正确的术语,因为某些面不是正方形,但您必须承认-“菱形八面体”的流动性更好。
R
。我已经在纸上解决了这个问题,以确保我的代码正确无误。