挑战
按字符数计算的最短代码,可以帮助Robot以尽可能少的步骤找到小猫。
高尔夫球手,这是一个危机时刻-小猫失踪了,找到它是机器人的工作!机器人需要以最短的路径到达小猫。但是,Robot的方式存在很多障碍,他需要您为他编写解决方案。
机器人曾经有个程序可以帮他做,但是那个程序丢失了,机器人也没有备份:(。
Robot的运行时间不是最好的,Robot必须从源代码中读取最少的字符,花费的时间最少,这意味着可以更快地找到Kitten!
机器人的记忆包含他当前所在位置的地图,其中顶部代表北,底部代表南,右代表东,左代表西。机器人总是处在一个未知尺寸的矩形房间中,周围环绕着墙壁,这#
在他的雷达图中表示。机器人可以进入的区域以空格表示。
机器人的雷达还会扫描房间中的许多障碍物,并以各种ASCII字母标记它们。机器人不能走过这些障碍。雷达会将Kitten标记为特殊的ASCII字符K
,而Robot的位置标记为R
。
机器人的导航系统是这样工作的:他可以理解二重方向和应该移动的运动单位数-例如,N 3
意思是“向北移动3个运动单位”。制作机器人的雷达图,使运动单位为一个ASCII字符。机器人只能沿4个方向行驶,不能对角线行驶。
勇敢的小猫保护者,您的任务是一次读取机器人的雷达图,并输出最少的方向,最小的移动单位行进距离。确保机器人至少有一条通往小猫的路径。
为确保Robot不会浪费时间执行有故障的程序,该程序不会帮助Robot找到Kitten,我鼓励您,勇敢的Kitten Saver,使用Robot过去的程序的此输出,以确保没有时间浪费在寻找Kitten上!
测试用例
Input:
######################
# d 3 Kj #
# #
# R #
# q #
######################
Output:
E 13
N 2
Input:
######################
# d r 3 Kj #
# p p #
# T X #
# q s t #
# #
# R o d W #
# #
# g t U #
# #
######################
Output:
N 1
E 10
N 4
E 2
Input:
######################
# spdfmsdlwe9mw WEK3#
# we hi #
# rdf fsszr#
# sdfg gjkti #
# fc d g i #
# dfg sdd #
# g zfg #
# df df #
# xcf R#
######################
Output:
N 1
W 9
N 5
E 4
N 1
E 4
N 1
代码计数包括输入/输出(即完整程序)。