Bulmaca:
Bir tür ad girmeniz gereken d-pad'li bir konsolu / elde tutulan bir oyun düşünün. Bu, QWERTY kullanımının konsollarda yaygınlaştırılmasından önce birçok eski oyunda ortaya çıktı (örneğin, Wii'nin giriş için bir QWERTY klavye düzeni kullandığına inanıyorum). Genellikle, ekran klavyesi * etkisine bakar:
Varsayılan:
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 _ + ^ =
Dava açıkken:
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 - + ^ =
Yani, tüm alfanümerik tuşlar ve aşağıdakiler:
_
: Tek boşluk
-
: Tire
+
: Yalnızca bir sonraki harf
^
için büyük / küçük harf değiştirme: Büyük harf kilidini aç / kapa (yani, tüm harflerin büyük / küçük harflerini değiştir)
=
: Girin, tamamlandı
* Açıkçası "BKSP" ve "ENTER" gibi tuşları daha kısa versiyonlarla değiştirdim
Ve sonra donanım d-pad (veya gidebiliriz tür kontrolün yer alacağını up
, down
, left
ve right
)
Ekran ayrıca tipik olarak bir taraftan doğrudan diğerine geçmenizi sağlar. Diğer bir deyişle, eğer mektuba odaklanmış olsaydınız J
, tuşuna basmak mektuba right
geçmenize izin verirdi A
.
Adımı ne zaman girsem, bunu yapmanın en hızlı yolunu bulmaya çalışırdım.
Hedef:
Programınız boşluk ve kısa çizgi gibi herhangi bir alfasayısal karakter içerebilen dizge girişini alır ve hedefiniz istenen dizgiyi çıkarmak için d-pad'e en kısa tuşa basmaktır .
hususlar:
Gerçek karaktere basmak için basılan tuşu dahil etmeniz gerekmez .
En Odak hep başlar A
girin =
olmalıdır preslenmiş sonunda
Örnek:
input: Code Golf
output: 43
Açıklanan:
A
-> C
= 2
C
-> ^
= 6 (sola doğru hareket ediyor)
^
-> 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
O olduğunu çabuk Not vurmak için +
bir iki kez _
ve bir G
o vurmak daha ^
sonra, bir kez takas geri.
Kazanan teslimi (en az 1w izin vereceğim) en kısa çözüm (bayt olarak) olacaktır. Bu benim ilk sorum olduğu için, umarım bu açık ve çok zor değildir.