介绍
每个人都知道,成功导航小行星场的可能性约为3,720:1。但是尽管有您的警告,Han Solo仍然愿意尝试自己的运气。
出于对人造生活的恐惧,您决定使用飞船特有的方言(请参见:首选的“高尔夫语言”)进行编码,避免使用小行星程序,该程序将决定采用小径ASCII迷宫的路径。
输入值
Millenium Falcon拥有一个小行星场制图程序,该程序提供类似于以下数据:
| ##### ######### |
| ###### # ### # |
| # # # # #### # |
@ ## ####
|# # # ### ## |
|## ## #### # # |
|#### ##### # ## |
顶部排在猎鹰的左边,底部排在猎鹰的右边,而列代表船前的东西。
- 每个
#
都是障碍。 - 每个空间都是飞船可以飞入的空白空间。
- 输入始终为7个字符高。这是小行星映射宽度限制。
- 输入始终为32个字符长(字段本身为30个字符,开始和结束限制为2个字符)。这是小行星映射深度限制。竖线
|
标记映射的开始和结束。 @
是猎鹰。它始终位于输入的中间行(第4行)和第一列中。- 最后一列垂直栏中的剩余空间是船只必须到达的地方。它始终位于输入的中间行(第4行)和最后一列。
输入可以作为多行字符串,字符串数组(来自STDIN或函数参数)或从文件中读取。
可能的动作
TIE-Fighters追求您,因此您必须始终向前。因此,船在每一步都有三种飞行方式:
-
向前/
前进并左转\
前进并右转
例如,以下是有效路径:
@---
--
/ \ /
@ -
-
/ \
/ \
@ \
如您所见,每列始终只有一招。猎鹰是一块垃圾,因此不能猛烈转弯。该装置移动,例如/\
或\/
被禁止。-
在两个相反的转弯之间,至少应有一个纯正的前进。另一方面,如上所述,可以为多个步骤连续地单向旋转。
如果一举导致船只停在障碍物所在的位置,猎鹰坠毁。例如,这些举动会导致崩溃:
@-#
@
\
#
#
/
@
请注意,这不是崩溃:
@-#
\
-
输出量
您必须输出相同的小行星字段ASCII,并带有有效的末尾路径。猎鹰必须打印在终点而不是起点。
例如,前面给出的输入示例的有效输出为:
| ##### ######### |
| ###### #-------- ### # |
| # # #/ # ####\ # |
--------- ## \ #### ----@
|# # # ### \ ## / |
|## ## #### \ #/ # |
|#### ##### #-- ## |
您的路线只需要不使猎鹰坠毁即可。它不必是最短的路径。
您可以假设到终点总会有至少一条可能的路径。
您可以以文件或任何等效形式输出到STDOUT,只要小行星字段的打印方式与本帖子中的内容完全相同(例如,输出路径的坐标列表无效)即可。
测试用例
正常的小行星场
| ##### ######### | | ###### # ### # | | # # # # #### # | @ ## #### |# # # ### ## | |## ## #### # # | |#### ##### # ## |
可能的输出
| ##### ######### | | ###### #-------- ### # | | # # #/ # ####\ # | --------- ## \ #### ----@ |# # # ### \ ## / | |## ## #### \ #/ # | |#### ##### #-- ## |
超规则小行星场
|# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # | @ # # # # # # # # # # # # # # |# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # |
可能的输出
|# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # | -# #-# #-# #-# #-# #-# #-# #--@ |#\#/#\#/#\#/#\#/#\#/#\#/#\#/# | | #-# #-# #-# #-# #-# #-# #-# #| |# # # # # # # # # # # # # # # |
死亡之星的核心
| # # # # | | # # # | | # # # # # | @ # # # # # | # # # # | | # # # # # | | # # # # |
可能的输出
| # # # -- # | | --- # # / #\ - | | / #\ # # / # \ /#\ | - # \ # #/ # - # ----@ | # \ # ---- # # | | # \#/ # # # | | # - # # # |
死亡之星战trench
|##############################| |##############################| |##############################| @ |##############################| |##############################| |##############################|
输出量
|##############################| |##############################| |##############################| ------------------------------@ |##############################| |##############################| |##############################|
小行星洞穴
|### ##########################| |## # ############### ## ######| |# ### ######## ### ## # #####| @ ###### ###### ### ## ### |######## ### ### ## #########| |########## # ### ## ##########| |########### #####|
可能的输出
|###-##########################| |##/#\############### ##-######| |#/###--######## ### ##/#\#####| -######\###### ### ##/###-----@ |########--### ### ##/#########| |##########\# ### ##/##########| |###########-------- #####|
计分
R2D2忙于在沼泽中游泳,因此您将不得不自己对Falcon的控制器进行编程,这很繁琐。因此,最短的代码胜出。
-
在每转弯的路径中都有,这被定义为“前进”动作。但是实际的移动始终是左两个斜线,然后是两个右斜线。