Beaucoup de vieux jeux Game Boy nécessitaient souvent une entrée de chaîne de la part de l'utilisateur. Cependant, il n'y avait pas de clavier. Cela a été géré en présentant à l'utilisateur un "écran de clavier" comme ceci:
Le « pointeur de caractère » commencerait sur la lettre A. L'utilisateur naviguerait à chaque caractère désiré avec le D-Pad quatre boutons de ( UP
, DOWN
, LEFT
et RIGHT
), puis appuyez sur BUTTON A
pour ajouter à la chaîne finale.
Notez s'il vous plaît:
- La grille s'enroule , donc appuyer
UP
sur la lettre A vous amènera à T. - Le 'pointeur de caractère' reste en place après avoir ajouté une lettre
Le défi
Le clavier ci-dessus a des options pour changer la casse et a une forme irrégulière. Donc, pour plus de simplicité, dans ce défi, nous utiliserons le clavier suivant (le coin inférieur droit est le caractère ASCII 32, un espace):
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 .
Taper sur des claviers comme celui-ci est extrêmement lent - donc, pour rendre cela plus facile, votre tâche consiste à écrire un programme qui indique à l'utilisateur le moyen le plus rapide possible de taper une chaîne donnée. S'il existe plusieurs moyens les plus rapides, il vous suffit d'en afficher un.
La clé de sortie doit être:
>
pourRIGHT
<
pourLEFT
^
pourUP
v
pourDOWN
.
pourBUTTON A
(ajouter la lettre actuelle à la chaîne)
Par exemple, une fois donnée la chaîne DENNIS
, la solution ressemblerait à ceci:
>>>.>.>>v..>>.>>>v.
Règles / Détails
- N'oubliez pas, la grille s'enroule!
- Vous pouvez soumettre un programme complet ou une fonction, tant qu'il prend la chaîne initiale et produit une chaîne de solution. Les espaces blancs / sauts de ligne ne sont pas pertinents tant que la sortie est correcte.
- Vous pouvez supposer que la saisie se composera uniquement de caractères saisissables sur le clavier spécifié, mais elle peut être vide.
- C'est le code-golf , donc le code le plus court l'emporte. Les échappatoires de code-golf standard s'appliquent.
Cas de test
Il existe généralement plusieurs solutions de même longueur. Pour chaque cas de test, j'ai inclus la longueur optimale et un exemple. Vous n'avez pas besoin d'imprimer la longueur dans votre réponse, juste la solution.
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)
Vous pouvez voir mon générateur de testcase sur repl.it - veuillez m'informer s'il y a des bugs.
Merci à tous pour les soumissions! L'utilisateur ngn est actuellement le gagnant avec 61 octets, mais si quelqu'un peut trouver une solution plus courte, la petite coche verte peut être déplacée;)