乌龟想要沿着网格移动以获取食物。他想知道要到达那里需要多少步。
同样,由于他的速度很慢,因此他在自己的域周围设置了传送器,如果它缩短了路径,他将利用它。如果延长了他的行程,或者避免使用它们。
遇见乌龟
🐢
在网格上的乌龟生活
然而,乌龟不能移动到一个正方形与山
海龟要吃掉他的草莓,想知道需要多久才能到达他的草莓
挑战
给定初始网格配置输出后,乌龟会到达其草莓的移动次数。
规则
您可以假设输入网格具有解决方案
每个网格只有一个
strawberry
,两个portals
和一个turtle
输入网格可以以任何方便的格式输入
您应该将其视为
teleporters
一次性用品乌龟移动到一个
teleporter
正方形的转弯,他已经在相应的位置了teleporter
。他从不teleporter
动弹,一直呆在那里最短路径不需要利用门户
乌龟不能进入山瓦
您可以使用任何ASCII字符或整数来表示
mountains
,turtle
,empty grid square
,strawberry
您可以使用相同的字符或两个不同的ASCII字符或整数来表示
teleporter
对一个网格可以有多个路径且具有相同的最短路径长度
这是代码高尔夫
规则澄清
- 您应该将其视为
teleporters
一次性用品。
推理:有人指出的情况:
只能通过两次进入和退出门户网站来解决。在作出澄清时,两种解决方案都以假定它们是一次性使用或没有理由尝试使用先前使用的正方形的方式起作用。为了避免破坏他们辛苦的解决方案,这似乎是解决此问题的最佳方法。因此,这将被视为无效的网格。
测试用例格式化为列表
[ ['T', 'X', 'X', 'S', 'X'], ['X', 'X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X'] ] --> 3
[ ['T', 'M', 'X', 'S', 'X'], ['X', 'M', 'X', 'X', 'X'], ['O', 'X', 'X', 'X', 'O'] ] --> 4
[ ['T', 'M', 'X', 'S', 'O'], ['O', 'M', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X'] ] --> 2
[ ['T', 'M', 'X', 'S', 'X'], ['O', 'M', 'X', 'X', 'X'], ['O', 'X', 'X', 'X', 'X'] ] --> 4
[ ['T', 'M', 'S', 'X', 'O'], ['X', 'M', 'M', 'M', 'M'], ['X', 'X', 'X', 'X', 'O'] ] --> 7
[ ['T', 'X', 'X', 'S', 'X'], ['O', 'M', 'M', 'M', 'X'], ['X', 'X', 'O', 'X', 'X'] ] --> 3
为人类格式化的测试用例
T X X S X
X X X X X
X X X X X --> 3
T M X S X
X M X X X
O X X X O --> 4
T M X S O
O M X X X
X X X X X --> 2
T M X S X
O M X X X
O X X X X --> 4
T M S X O
X M M M M
X X X X O --> 7
T X X S X
O M M M X
X X O X X --> 3
学分
通过以下方式进行设计和结构: Arnauld的“饿老鼠”
拟议挑战编辑建议:卡米尔·德拉卡里(Kamil-drakari),beefster