Головоломка:
Рассмотрим консольную / портативную игру с D-Pad, где вы должны ввести название своего рода. Это появилось во многих старых играх до того, как использование QWERTY было популяризировано в консолях (например, я считаю, что Wii использует раскладку клавиатуры QWERTY для ввода). Как правило, экранная клавиатура выглядит с эффектом *:
По умолчанию:
0 1 2 3 4 5 6 7 8 9
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 _ + ^ =
С переключенным корпусом:
0 1 2 3 4 5 6 7 8 9
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 - + ^ =
То есть все буквенно-цифровые клавиши и следующее:
_: Один пробел
-: дефис
+: переключать регистр только на следующую букву: переключать регистр
^букв (то есть переключать регистр всех букв)
=: ввод, завершение
* Очевидно, я заменил ключи типа «BKSP» и «ENTER» на более короткие версии.
И тогда аппаратный будет включать в себя D-Pad (или какую - либо форму контроля , где вы могли бы пойти up, down, leftи right)
Экран также обычно позволяет перемещаться с одной стороны непосредственно на другую. То есть, если вы сфокусировались на букве J, нажатие rightпозволит вам перейти к букве A.
Всякий раз, когда я вводил свое имя, я всегда старался найти самый быстрый способ сделать это.
Цель:
Ваша программа будет принимать строковый ввод, который может включать любой буквенно-цифровой символ, включая пробел и дефис, и ваша цель - вывести кратчайшее количество нажатий клавиш на клавиатуре d для вывода требуемой строки.
Соображения:
Вам не нужно включать нажатой клавишу для нажатия фактического символа.
Фокус всегда начинается с A
Ввод =должен быть нажат в конце
Пример:
input: Code Golf
output: 43
Объяснил:
A -> C= 2
C-> ^= 6 (движется влево)
^-> o= 5
o-> d= 2
d-> e= 1
e-> += 5
+-> _= 1
_-> += 1
+-> G= 3
G-> o= 3
o-> l= 3
l-> f= 5
f-> == 6
Обратите внимание, что +для a _и a быстрее ударить дважды, Gчем для удара ^один раз, а затем поменять местами назад.
Представление победителя (я позволю по крайней мере 1 Вт) будет самым коротким решением (в байтах). Поскольку это мой первый вопрос, я надеюсь, что это понятно и не слишком сложно.