Ben robotum. Bu klavyeyi kolay dikdörtgen yerleşimi nedeniyle aldım :
~` !1 @2 #3 $4 %5 ^6 &7 *8 (9 )0 _- +=
tab Qq Ww Ee Rr Tt Yy Uu Ii Oo Pp {[ }] \|
Aa Ss Dd Ff Gg Hh Jj Kk Ll :; "' [-enter-]
Zz Xx Cc Vv Bb Nn Mm <, >. ?/
[========= space =========]
İnsan metnini yazdırmak için, onu manipülatörlerimin yorumlayabileceği komutlara dönüştürmem gerekiyor. Sol manipülatörüm Shiftanahtarın üzerine geliyor. Sağ manipülatörüm, başlangıçta ~anahtarın üzerine gelir. Manipülatörlerimin anladığı komutlar:
S : press the shift key
s : release the shift key
L : move the right manipulator left by 1
R : move the right manipulator right by 1
U : move the right manipulator up by 1
D : move the right manipulator down by 1
P : press the key under the right manipulator
p : release the key by the right manipulator
Herhangi bir ASCII mesajını komut listesine dönüştürmek için kod yazın. Giriş, herhangi bir sayıda yazdırılabilir 95 ASCII karakteri içerebilir; muhtemelen TAB ve yeni satır karakterleri. Çıktı, manipülatörlere verilen komutların listesi olmalıdır.
Örneğin, yazmak için Hello World!
, komutlar
SRRRRRRDDPp
sLLLUPp
RRRRRRDPp
Pp
UPp
LLLLDDDPp
SLLLUUUPp
sRRRRRRRPp
LLLLLPp
RRRRRDPp
LLLLLLPp
SLLUUPp
Her mesajı yazdırmadan önce manipülatörleri başlangıç durumuna sıfırladım.
Doğru programlama ile kaçınılması gereken bazı mekanik tehlikeler vardır:
LRUD
Yazdırma (P
) devreye alındığında hareket etmeye ( ) izin verilmiyor- Manipülatörlerde sıkışma yok: bir manipülatör devreye girdiğinde (
S
veyaP
), bu manipülatörün bir sonraki komutu devreden çıkarılmalı (s
veyap
) ve tersi olmalıdır Gereksiz kaydırma yok: her iki shift (
s
,S
) komutu arasında birP
komut olmalıYani, yazdırmak için
~~
komutlar,SPpPp
olurken, geçerliSPpsSPp
değildirSınırların dışına çıkmamak yok: hiçbir hareket komutu sağ manipülatörü 13 pozisyondan daha fazla sağa veya 4 başlangıç pozisyonunun altına (veya üste veya sola herhangi bir nokta) hareket ettirmeye çalışmamalıdır.
Ek Notlar:
- Devre dışı bırakılmış bir tuşa (komut sırası gibi
DDPp
) basılması hiçbir tuşa basılmamasına neden olur ve buna izin verilir. - Shift+ Tuşlarına basmanın bir Tabetkisi yoktur, ancak Shift+ Spaceve Shift+ tuşlarının Enterda olmadan aynı etkisi vardır Shift.
- Boşluk çubuğundaki ve Entertuşundaki herhangi bir noktaya basmak aynı etkiye sahiptir.
- Çıktıdaki boşluk tuşlarının bir anlamı yoktur, ancak güzel bir şekilde biçimlendirmek için kullanılabilir.
Pp
? Bildiğim kadarıyla gördüğünüz gibi bu her zaman tek eylem ve ne olduğu P
veya p
kendi görünebilir.