많은 오래된 Game Boy 게임은 종종 사용자의 문자열 입력이 필요했습니다. 그러나 키보드는 없었습니다. 이것은 사용자에게 "키보드 화면"을 다음과 같이 제시함으로써 처리되었습니다.
'문자 포인터는'사용자는 각각 원하는 문자로 이동 한 것입니다 편지 A.에 시작될 것입니다 D-패드 의 네 개의 버튼 ( UP
, DOWN
, LEFT
및 RIGHT
), 다음을 눌러 BUTTON A
최종 문자열로 추가 할.
참고 사항 :
- 그리드가 줄 바꿈 되므로
UP
문자 A를누른 상태에서을누르면T로 이동합니다. - '문자 포인터'는 문자를 추가 한 후에도 유지됩니다
도전
위의 키보드에는 대소 문자를 변경하는 옵션이 있으며 불규칙한 모양입니다. 따라서 간단하게하기 위해이 과제에서는 다음 키보드를 사용합니다 (오른쪽 하단은 ASCII 문자 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
.
forBUTTON A
(현재 문자를 문자열에 추가)
예를 들어, string DENNIS
을 지정하면 솔루션은 다음과 같습니다.
>>>.>.>>v..>>.>>>v.
규칙 / 세부 사항
- 그리드가 둘러싸여 있음을 기억하십시오!
- 초기 문자열을 사용하고 솔루션 문자열을 생성하는 한 전체 프로그램 또는 함수를 제출할 수 있습니다. 출력이 정확하다면 공백 / 후행 줄 바꿈은 관련이 없습니다.
- 입력이 지정된 키보드에서 입력 가능한 문자로만 구성 될 수 있지만 비어있을 수 있습니다.
- 이것은 code-golf 이므로 가장 짧은 코드가 승리합니다. 표준 코드 골프 허점이 적용됩니다.
테스트 사례
일반적으로 길이가 같은 솔루션이 여러 개 있습니다. 각 테스트 사례마다 최적의 길이와 예제를 포함 시켰습니다. 답에 길이를 인쇄 할 필요가 없으며 해결책 만 있습니다.
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 바이트의 승자이지만, 더 짧은 솔루션을 찾을 수 있다면 작은 녹색 체크 표시를 이동할 수 있습니다.)