посылка
Так что недавно я был на полчаса раньше, чем на прием, и решил подождать снаружи. Я также решил, что было бы странно, если бы я просто стоял неподвижно перед домом. Поэтому я решил быстро прогуляться в пределах ограниченного пространства. Я также пришел к выводу, что если бы я начал ходить по кругу, это сделало бы очевидным, что я слонялся без дела. Поэтому я был вдохновлен на создание своего первого соревнования Code Golf.
Спецификация
Вам будет предоставлен список, карта области, которая будет содержать либо, " "
либо "#"
, которые представляют свободные пространства и препятствия в некотором роде. Свободные места могут пересекаться только один раз, и пересечение занимает 1 минуту. Ваша начальная позиция будет обозначена в "@"
соответствии с традицией roguelike, и цель будет представлена с, "$"
потому что это то, что вы собираетесь потерять там. Вам также дадут целое число, которое будет представлять, сколько минут вы должны потратить, прежде чем не будет казаться, что вы вторгаетесь. Когда вы приземлитесь на"$"
, это должно было быть точное количество минут (поэтому, если вы выполняли обратный отсчет, это должно быть 1 на соседней плитке и 0 на плитке). Всегда будет возможность добраться до места назначения. Ваша программа или функция должна будет вернуть список, показывающий кратчайший путь с помощью <,>, ^ и v, чтобы представить четыре возможных направления.
Примеры
Входные данные:
[[" ", " ", " ", " "],
["@", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
а также
5
Ouput:
[[">", ">", ">", "v"],
["^", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
Входные данные:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
а также
7
Выход:
[[" ", "#", " ", " ", " "],
[" ", "#", ">", "v", " "],
["v", "#", "^", "$", " "],
[">", ">", "^", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
Входные данные:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
а также
17
Выход:
[[" ", "#", " ", "v", "<"],
[" ", "#", " ", "v", "^"],
["v", "#", " ", "$", "^"],
[">", ">", "v", ">", "^"],
[" ", "#", "v", "^", "<"],
[" ", "#", ">", ">", "^"]]
правила
- Применяются стандартные лазейки
- Каждая плитка должна быть перемещена только один раз
- Точное количество времени должно быть проведено на доске
- В случае нескольких путей должен отображаться только один путь
- Это вопрос игры в гольф, поэтому выигрывает самый короткий ответ
- В соответствии с вопросом user202729 в комментариях, вы можете принять правильные данные.
Добавить комментарий, если требуется дальнейшее уточнение