パズル:
並べ替えの名前を入力する必要がある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パッドが含まれるであろうup
、down
、left
及びright
)
また、画面では通常、一方の側からもう一方の側に直接移動できます。つまり、手紙J
に集中している場合、を押すright
と手紙に移動できますA
。
私は自分の名前を入力するたびに、常に最も簡単な方法で解決しようとします。
ゴール:
プログラムは、スペースとハイフンを含む任意の英数字を含む文字列入力を受け取ります。目的は、必要な文字列を出力するために、Dパッドで最短のキー押下を出力することです。
考慮事項:
実際の文字を押すために押されたキーを含める必要はありません。
フォーカスは常にA
Enterで始まり、最後に押す=
必要があります
例:
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で2回ヒットする方が、1 回ヒットしてG
から^
スワップバックするよりも速いことに注意してください。
受賞作品(少なくとも1週間は許可します)が最短のソリューション(バイト単位)になります。これが私の最初の質問であるため、これが明確であり、それほど難しくないことを望みます。