你是老鼠 您的鼠标朋友全部被捕获,失去知觉,被困在只有一个入口/出口的迷宫中。您恰好有一张完美的迷宫图,因此您可以制定一种解决方案,以赶紧进入并安全携带。但是,迷宫装有安全系统,1000
一旦达到阈值,就会触发警报,导致您被抓获并无法执行救援任务。
根据您先前对迷宫的调查,您走过的每个正方形(即,每个水平或垂直移动- 鼠标都不能对角移动)会增加1
安全系统的计数器。但是,如果您要负重(一块炸药或一个昏迷的老鼠朋友),它会增加重量,2
因为它会检测到额外的压力。入口/出口广场没有此安全系统,因此也不会添加到柜台上。
您带到入口的炸药数量无限制,因此您只需炸毁所有墙壁即可释放朋友。但是您必须谨慎,因为每次爆炸都会增加50
震荡压力。此外,您一次只能携带一件东西,无论是一只鼠标还是一块炸药。由于炸药块只能爆炸一个墙面空间,因此,如果连续有多堵墙面,则需要空手返回入口以获取更多空间。
通例
假设我们的迷宫如下所示:
######
#M# E#
######
我将c
用于柜台。我们从E
入口开始,一边携带炸药一边向左移动一格c=2
。我们引爆炸药炸毁墙壁c=52
。我们空手向左移动两个正方形以得到c=54
,现在我们站在鼠标的正方形上。我们接起朋友,将3个正方形移回E
xit,但是最后一个正方形不计数,因为它没有任何传感器,所以只有2个正方形,背面有东西。这意味着,当我们使用最后一个鼠标c=58
(小于)到达出口时1000
,因此任务成功。
挑战
在输入迷宫的情况下,无论您是鼠标英雄,还是可以在上述限制范围内成功营救所有被困鼠标,或者任务是否失败,都可以输出。
输入项
- 任何可接受格式(多行字符串,字符串数组等)的2D迷宫。
- 对于这一挑战,我将同时使用
#
内墙和外墙,M
鼠标朋友和E
入口。 - 入口永远不会紧邻内墙(始终至少有一个空间可以自由移动)。
- 您可以替换任何希望的可打印ASCII字符,只要它们是一致的即可。只要您保持一致(例如,如果您选择改用内墙,而选择外墙,则每个内墙都必须是,每个外墙都必须),这确实允许您对内墙和外墙使用两个不同的符号)。
@
#
@
#
- 迷宫将始终被墙壁完全包围,但不一定是矩形。如果需要,您可以假定迷宫用空格填充以进行矩形输入(可选)。
- 迷宫中的部分可能没有炸药就无法到达。
- 您无法炸开迷宫的外墙。
输出量
甲truthy / falsey值。对于“是,鼠标可以拯救其他所有鼠标”,为True;对于“否,警报系统将被触发”,为Falsey。
规则
例子
真实示例,用空白行分隔。
#####
#M E#
#####
######
#M# E#
######
########
#E # M#
# # #
# # #
# #
########
#############################
# ## # # #
# M ## M # # #
# ## # M # E #
#M ## # # #
#############################
###############
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMM MM#
#MMMMMMMMMMMME#
###############
虚假示例,用空行分隔
#############################
#M ## ## ## #
# M ## M ## ## #
# ## ## M ## E #
#M ## ## ## #
#############################
#############################
########
########
# # #
# M # M#
########
#####
# M #
#####
#####
#####
#####
###################
# # # ## ## # # #
#M#M#M## E ##M#M#M#
# # # ## ## # # #
###################
#######
######
#####
####
# M#
####
###############
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMME#
###############