Viele alte Game Boy- Spiele erforderten häufig Zeichenfolgeneingaben vom Benutzer. Es gab jedoch keine Tastatur. Dies wurde erreicht, indem dem Benutzer ein "Tastaturbildschirm" wie folgt präsentiert wurde:
Der ‚Zeichenzeiger‘ würde auf Buchstaben A beginnt , der Benutzer zu jedem gewünschten Zeichen mit der Ebene würde D-Pad ‚s vier Tasten ( UP
, DOWN
, LEFT
und RIGHT
) und drückt BUTTON A
es auf die endgültige Zeichenfolge angehängt.
Bitte beachten Sie:
- Das Gitter ist umlaufend.
UP
Wenn Sie also auf Buchstabe Adrücken, gelangen Sie zu T. - Der 'Zeichenzeiger' bleibt nach dem Anhängen eines Buchstabens gesetzt
Die Herausforderung
Die obige Tastatur bietet Optionen zum Ändern der Groß- / Kleinschreibung und weist eine unregelmäßige Form auf. Der Einfachheit halber verwenden wir in dieser Herausforderung die folgende Tastatur (unten rechts steht ASCII-Zeichen 32, ein Leerzeichen):
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 .
Das Schreiben auf solchen Tastaturen ist extrem langsam. Um dies zu vereinfachen, müssen Sie ein Programm schreiben, das dem Benutzer den schnellstmöglichen Weg zur Eingabe einer bestimmten Zeichenfolge weist . Wenn es mehrere schnellste Wege gibt, müssen Sie nur einen zeigen.
Der Ausgabeschlüssel sollte sein:
>
zumRIGHT
<
zumLEFT
^
zumUP
v
zumDOWN
.
forBUTTON A
(aktuellen Buchstaben an String anhängen)
Wenn beispielsweise die Zeichenfolge angegeben wird DENNIS
, sieht die Lösung folgendermaßen aus:
>>>.>.>>v..>>.>>>v.
Regeln / Details
- Bitte denken Sie daran, das Gitter wickelt sich um!
- Sie können ein vollständiges Programm oder eine Funktion einreichen, solange die ursprüngliche Zeichenfolge verwendet wird und eine Lösungszeichenfolge erstellt wird. Leerzeichen / abschließende Zeilenumbrüche sind irrelevant, solange die Ausgabe korrekt ist.
- Sie können davon ausgehen, dass die Eingabe nur aus Zeichen besteht, die auf der angegebenen Tastatur eingegeben werden können, sie kann jedoch leer sein.
- Das ist Code-Golf , also gewinnt der kürzeste Code. Standard Code-Golf-Lücken gelten.
Testfälle
In der Regel gibt es mehrere Lösungen gleicher Länge. Ich habe für jeden Testfall die optimale Länge und ein Beispiel angegeben. Sie müssen nicht die Länge in Ihrer Antwort drucken, sondern nur die Lösung.
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)
Sie können meinen Testfallgenerator auf repl.it anzeigen - bitte benachrichtigen Sie mich, wenn Fehler auftreten.
Vielen Dank an alle für die Einsendungen! User ngn ist momentan der Gewinner mit 61 Bytes, aber wenn jemand eine kürzere Lösung findet, kann das kleine grüne Häkchen verschoben werden;)