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