Многие старые игры Game Boy часто требовали ввода строки пользователем. Однако клавиатуры не было. Это было сделано путем предоставления пользователю «экрана клавиатуры» следующим образом:
«Указатель на символ» будет начинаться на букву А. пользователя будет перемещаться к каждому нужному символу с D-Pad «s четыре кнопки ( UP
, DOWN
, LEFT
и RIGHT
), затем нажмите кнопку , BUTTON A
чтобы добавить его в конечную строку.
Пожалуйста, обратите внимание:
- Сетка оборачивается , поэтому нажатие
UP
на букву А приведет вас к T. - «Указатель на символ» остается на месте после добавления буквы
Соревнование
Вышеуказанная клавиатура имеет опции для изменения регистра и имеет неправильную форму. Итак, для простоты в этой задаче мы будем использовать следующую клавиатуру (справа внизу - ASCII char 32, пробел):
A B C D E F G
H I J K L M N
O P Q R S T U
V W X Y Z .
Печатание на таких клавиатурах чрезвычайно медленное, поэтому, чтобы упростить эту задачу, вы должны написать программу, которая сообщает пользователю самый быстрый способ ввода заданной строки. Если есть несколько быстрых способов, вам нужно показать только один.
Выходной ключ должен быть:
>
дляRIGHT
<
дляLEFT
^
дляUP
v
дляDOWN
.
дляBUTTON A
(добавить текущее письмо в строку)
Например, когда дана строка DENNIS
, решение будет выглядеть так:
>>>.>.>>v..>>.>>>v.
Правила / Детали
- Пожалуйста, помните, сетка оборачивается!
- Вы можете отправить полную программу или функцию, если она принимает начальную строку и создает строку решения. Пробелы / завершающие символы новой строки не имеют значения, если вывод правильный.
- Можно предположить, что ввод будет состоять только из символов, набираемых на указанной клавиатуре, но он может быть пустым.
- Это код-гольф , поэтому выигрывает самый короткий код. Применяются стандартные лазейки для игры в гольф.
Тестовые случаи
Обычно есть несколько решений одинаковой длины. Для каждого теста я включил оптимальную длину и пример. Вам не нужно печатать длину в вашем ответе, только решение.
FLP.TKC -> 25 steps: <<.<v.<<<v.<<<v.^.<<^.<^.
MOYLEX -> 23 steps: <<v.>>v.>>>v.>^^.^.<<^.
FEERSUM -> 18 steps: <<.<..<vv.>.>>.<^.
MEGO -> 14 steps: <<v.<^.>>.>vv.
A CAT -> 17 steps: .<^.>>>v.<<.<<vv.
BOB -> 10 steps: >.<vv.>^^.
(space) -> 3 steps: <^.
(empty) -> 0 steps: (empty)
Вы можете просмотреть мой генератор тестовых файлов на repl.it - пожалуйста, сообщите мне, если есть какие-либо ошибки.
Спасибо всем за представления! Пользователь ngn в настоящее время является победителем с 61 байтом, но если кто-то может найти более короткое решение, маленький зеленый тик может быть перемещен;)