Le puzzle:
Considérez un jeu console / portable avec un d-pad où vous devez entrer un nom en quelque sorte. Cela est apparu dans de nombreux jeux plus anciens avant que l'utilisation de QWERTY ne soit popularisée dans les consoles (par exemple, je pense que la Wii utilise une disposition de clavier QWERTY pour la saisie). En règle générale, le clavier à l'écran ressemble à l'effet de *:
Défaut:
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 _ + ^ =
Avec le boîtier basculé:
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 - + ^ =
Autrement dit, toutes les clés alphanumériques et les éléments suivants:
_: Un seul espace
-: Un tiret
+: Changer la casse pour la lettre suivante uniquement
^: Basculer le verrouillage des majuscules (c'est-à-dire, changer la casse de toutes les lettres)
=: Entrer, terminer
* Évidemment, j'ai remplacé des clés comme "BKSP" et "ENTER" par des versions plus courtes
Et puis le matériel comprendrait un d-pad (ou une certaine forme de contrôle où vous pouvez aller up, down, leftet right)
L'écran vous permet également généralement de passer d'un côté directement à l'autre. Autrement dit, si vous étiez concentré sur la lettre J, appuyer sur rightvous permettrait de passer à la lettre A.
Chaque fois que je saisissais mon nom, j'essayais toujours de trouver le moyen le plus rapide de le faire.
Objectif:
Votre programme prendra une entrée de chaîne qui peut inclure n'importe quel caractère alphanumérique, y compris un espace et un trait d'union, et votre objectif est de produire le plus petit nombre de touches sur le pavé numérique pour sortir la chaîne requise.
Considérations:
Vous n'avez pas besoin d'inclure la touche enfoncée pour appuyer sur le caractère réel.
La mise au point commence toujours à la toucheA
Entrée =doit être enfoncée à la fin
Exemple:
input: Code Golf
output: 43
Expliqué:
A -> C= 2
C-> ^= 6 (se déplaçant vers la gauche)
^-> 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
Notez qu'il est plus rapide de frapper +deux fois pour a _et a Gque de frapper ^une fois, puis de revenir en arrière.
La soumission gagnante (je vais autoriser au moins 1w) sera la solution la plus courte (en octets). Comme c'est ma première question, j'espère que c'est clair et pas trop difficile.