My TV remote control has arrow buttons and an OK
button.
I can use these to move a "cursor" on a logical screen keyboard to type words...
The screen "keyboard" layout looks like this
<style> #tvkb { width : 400px; border: 5px solid gray; border-collapse: collapse; } #tvkb td { color : orange; background-color : black; text-align : center; border: 3px solid gray; border-collapse: collapse; } </style>a | b | c | d | e | 1 | 2 | 3 |
f | g | h | i | j | 4 | 5 | 6 |
k | l | m | n | o | 7 | 8 | 9 |
p | q | r | s | t | . | @ | 0 |
u | v | w | x | y | z | _ | / |
aA | SP |
aA
is the SHIFT key. Pressing this key toggles alpha characters between UPPERCASE and lowercaseSP
is the space character- The other blank keys in the bottom row have no function
How many button presses on my remote are required to type the given words
?
This Kata is an extension of the earlier ones in this series. You should complete those first.
- The cursor always starts on the letter
a
(top left) - The alpha characters are initially lowercase (as shown above)
- Remember to also press
OK
to "accept" each letter - Take the shortest route from one letter to the next
- The cursor wraps, so as it moves off one edge it will reappear on the opposite edge
- Although the blank keys have no function, you may navigate through them if you want to
- Spaces may occur anywhere in the
words
string - Do not press the SHIFT key until you need to. For example, with the word
e.Z
, the SHIFT change happens after the.
is pressed (not before)
words = Code Wars
- C =>
a
-aA
-OK-A
-B
-C
-OK = 6 - o =>
C
-B
-A
-aA
-OK-u
-v
-w
-x
-y
-t
-o
-OK = 12 - d =>
o
-j
-e
-d
-OK = 4 - e =>
d
-e
-OK = 2 - space =>
e
-d
-c
-b
-SP
-OK = 5 - W =>
SP
-aA
-OK-SP
-V
-W
-OK = 6 - a =>
W
-V
-U
-aA
-OK-a
-OK = 6 - r =>
a
-f
-k
-p
-q
-r
-OK = 6 - s =>
r
-s
-OK = 2
Answer = 6 + 12 + 4 + 2 + 5 + 6 + 6 + 6 + 2 = 49