Черепаха хочет двигаться вдоль сетки, чтобы добраться до своей еды. Он хочет знать, сколько ходов ему понадобится, чтобы добраться туда.
Кроме того, поскольку он медлителен, у него установлены телепорты вокруг его домена, которые он будет использовать, если это сократит его путь. Или избегайте их, если это удлиняет его путь.
Встретить черепаху
🐢
Черепаха живет на сетке
Однако, черепаха не может двигаться к квадрату с горы
Черепаха хочет съесть свою клубнику и хотела бы знать, сколько времени понадобится, чтобы добраться до его земляники.
Соревнование
Учитывая исходную конфигурацию сетки, выведите количество ходов, за которое черепаха доберется до своей клубники.
правила
Вы можете предположить, что входная сетка имеет решение
Каждая сетка будет иметь только один,
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
Предлагаемые вызовы Править совет: Камил-дракари , beefster
источник
Ответы:
JavaScript (ES7),
140 139138 байтПринимает ввод как матрицу целых чисел со следующим отображением:
Попробуйте онлайн!
Как?
комментарии
источник
Python 2 ,
441431341 байтПопробуйте онлайн!
Ввод в виде списков, но с использованием цифр вместо символов (благодаря Quintec) и отдельного значения для пункта назначения телепорта. Эти большие отступы должны быть символами табуляции, если Stack Exchange удаляет их. Любые советы или идеи особенно приветствуются, так как я чувствую, что это может стать
намногокороче.Таблица символов, используемых в вызове для чисел, используемых в моей программе, приведена ниже, но вы также можете использовать эту программу .
-10 байт благодаря Quintec, изменив ввод с использования символов на цифры.
- Большое количество байтов благодаря Джонатану Фреху, ЭльПедро и Джонатану Аллану.
источник
Python 2 , 391
397403422байтаПопробуйте онлайн!
Задача переводится в график, и решение состоит в том, чтобы найти кратчайший путь от черепахи до клубники.
источник