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, leftve 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 rightgeç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 Go 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.