У багатьох старих іграх 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 байтом, але якщо хтось може знайти коротше рішення, маленьку зелену галочку можна перемістити;)