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:
LRUDYazdırma (P) devreye alındığında hareket etmeye ( ) izin verilmiyor- Manipülatörlerde sıkışma yok: bir manipülatör devreye girdiğinde (
SveyaP), bu manipülatörün bir sonraki komutu devreden çıkarılmalı (sveyap) ve tersi olmalıdır Gereksiz kaydırma yok: her iki shift (
s,S) komutu arasında birPkomut olmalıYani, yazdırmak için
~~komutlar,SPpPpolurken, geçerliSPpsSPpdeğ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 Pveya pkendi görünebilir.