Черепаха хоче рухатися по сітці, щоб дістатися до своєї їжі. Він хоче знати, скільки рухів знадобиться, щоб він туди потрапив.
Крім того, оскільки він повільний, у нього є телепортатори, створені навколо свого домену, які він використовуватиме, якщо це скоротить його шлях. Або уникати їх, якщо це подовжить його шлях.
Зустрінь черепаху
🐢
Черепаха живе на сітці
черепаха може рухатися до сусідньої площі ...
Однак черепаха не може переміститися до площі з горою
Черепаха хоче з'їсти свою Полуницю, і хотіла б знати, скільки часу знадобиться, щоб дістатися до його Полуниці
У цьому прикладі черепаха на витків
На щастя, Черепаха знайшла телепортатора! У сітці є два телепорти, які співпадають один з одним. Наступивши на телепортер, негайно переміщує черепаху до відповідного телепортатора. Телепортери дуже нестабільні і після їх використання один раз вони не працюють і більше не користуються.
Змагання
Враховуючи початкову конфігурацію сітки, кількість ходів черепахи знадобиться, щоб досягти своєї полуниці.
Правила
Ви можете припустити, що вхідна сітка має рішення
Кожна сітка матиме лише один
strawberry
і дваportals
та одинturtle
Сітка вводу може бути введена в будь-якому зручному форматі
Вам слід обробити
teleporters
це предмети одноразового використанняПоворот, який черепаха рухається на
teleporter
квадрат, він уже на відповідномуteleporter
. Він ніколи не рухається на ateleporter
і залишається там для рухуНайкоротший шлях не потребує використання порталу
Черепаха не може перейти в гірські черепиці
Ви можете використовувати будь-який 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
Пропоновані виклики Поради щодо редагування: Каміль-Дракарі , яловичина