puts
otomatik ekrana dize çıktısı sonra bir yeni satır (\n
) ekler: Ama bütün oyun alanını karıştıran biridir thr
garip bir çıkışı vardır. Bu çoğu durumda yararlıdır, ancak her zaman değil.
Eğer Yeni satır istemiyorsanız
Kullanım print
:
print "Foo"
Bu durumda, muhtemelen de mevcut hattını temizlemek istiyorum; - bu sadece imleci geri hareket Bu geri Sütun 0 imleci o olacak değil net herhangi karakterler unutmayın edecektir
print "Foo\r"
: siz ("satırbaşı" için) \r
ile yapabilirsiniz sütun 0 böylece karakterleri geçersiz kılabilir. Yani, örneğin bunun için: - Ekranda bu iki eksik, Foo
yana
Foolo
sadece üç karakter verir:
print "Hello\r"
print "Foo\r"
neden olacaktır. geri imleci bir karakter hareket ettirmek için (backspace) ayrıca \b
var
print "Foo \r"
: biz boşluk eklemek gerekir ki düzeltmek için
print "Foo"
print "\b\bee"
sonuçlanacaktır içinde:
Fee
Tümü bununla çalışmak oldukça yorucu ve tam olarak neden curses
kütüphane var ;-) Tüm bu doğru stu silmeyle uğraşan sarıcı işlevlerinde sarar ff ve aslen böyle ASCII oyunları için geliştirilmiştir ;-) kullanmanızı öneririm!
Eğer oyun yapıyorsanız, ['curses'] (https://github.com/ruby/curses) kütüphanesini kullanmak ve klavyenizin okunabilir durumunu kontrol eden bir olay döngüsüne sahip olmak isteyebilirsiniz. Burada iş parçacığı için bir sebep yok. – tadman
Bir iş parçacığı tarafından doğru çıktı nasıl yapılır? –
Kodunuzu denediğimde, "Foo" her zaman satırın başına yazılır, sizin durumunuzda olduğu gibi eklenmez. Bu muhtemelen terminal ayarlarındaki bir farklılıktan kaynaklanmaktadır. "koyar" dizenin sonunda bir satır beslemesi yazar ve kullandığınız terminal, satır beslemesini bir, iyi, satır besleme olarak yorumlar. Çıktısı ne zaman "koyar" diye yazıyor Foo \ r "'? – user1934428