Spiral , skor: 61921 5127 4715 4655 4191
4.X~>v+^#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v
X * X X X X X X X X X X X X X X X X X X X X X X X X X
! > h y t f V b n j u [ ( 1 3 2 ) ] U J N B F T Y H G
0;vgv*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*vvv****v+^v+^v+^v+^*v++4
X X X X X X X X X X X X X X X X X X X X X X X X X X
v v v v v v v v v v v v v v v v v v v v v v v v v v
Y y J F V u t U [ G H B n 3 N 2 j ) h g f ] ( 1 b T
Bir tercüman bulunabilir burada .
Açıklama:
P.X~ZZ*v+^#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v
X X X X X X X X X X X X X X X X X X X X X X X X X X
! h y t f V b n j u r d c m k i e s x l o w a z p q
0;vgv*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*v*****************************************************************vP
X X X X X X X X X X X X X X X X X X X X X X X X X X
v v v v v v v v v v v v v v v v v v v v v v v v v v
z y x w V u t s r q p o n m l k j i h g f e d c b a
Program 0dördüncü satırdaki karakterden başlar . Çalıştırılacak ilk kod parçası 0;vg. ;girdi olarak bir sayı alır ve yığına yerleştirir. vkasada ne olduğunu (sıfır) yığına yerleştirir. Sayaç olarak kullanılacaktır. gBu, bir etikete ulaşıldığında, kontrol g, koddaki harfin diğer bir yerine geçer .
Demek burası kontrolün şu anda:
X
v
g
Diğer tüm yönlerde boşluk olduğundan, işaretçi yukarı doğru hareket etmeye başlar.
vyığına sıfır yerleştirir ve Xhemen yığından çıkar. Açılan değer sıfır olduğundan, komut işaretçisi hareket eder X(aksi takdirde boşluk olarak değerlendirilir).
Varsayılan olarak, kontrol akışı sağa dönüş modundadır, bu yüzden şimdi kavşağa ulaştığında, komut gösterici sağa döner. vYine bir kez daha yığına bir sıfır iter *, kayıt birer birer artar.
v*v*v
X
v
g
Bir sonraki vadım kayıt defterinde olanı (sayı 1) yığına yerleştirir, komut gösterici bir sonrakine vurarak sağa dönmeye çalışır X. Yığına yeni eklenen değer açılır ve kayıt defterine yerleştirilir. Sıfır Xolmadığından girilmez ve IP *bunun yerine sağdaki bir sonraki adıma geçer ve kayıtdaki değeri tekrar artırır.
v*v*v*v*v
X X X X X
v v v v v
i h g f e
Bu, bu kısmın sonuna ulaşana ve *s çizgisi başlayana kadar tekrar tekrar olur . Şimdiye kadar, kayıt defterindeki değer ASCII harfi geksi ASCII harfi olan 6'dır a. Böylece 97 *s'lik bir satırla , kayıttaki değeri 103'e yükseltiriz; bu gda yazdırmak istediğimiz harfle eşleşir . vyığına iter ve Pbir diğer etikettir P, kodun ilk satırında diğerine atladık .
İşte .yığındaki değeri çıkar ve karakter olarak yazdırır. Bundan sonra X, fazlalık sıfırı yığından çıkar, sonra yığında ~kalan iki değeri karşılaştırır (değerler sayaç ve giriş değeridir). Değerler aynıysa, operatör yığına sıfırı koyar (aksi halde -1 veya 1). Yine kontrol sağa dönmeye çalışır. XSıfır Xise ve girdikten sonra !programı sonlandırarak, yığından karşılaştırmanın değerini çıkarır .
P.X~ZZ*v+^
X
!
Aksi halde IP Z, bu durumda yalnızca bir adım sağa atlayan bir etiket olan sekmesine devam eder. Bunu yapmanın nedeni, atlamanın kayıttaki değeri sıfıra ayarlamasıdır. *yazmacı artırır ve vsonuç 1'i yığına yerleştirir. +yığının iki üst elemanını (1 ve sayaç) çıkarır, ekler ve sonucu yığına yerleştirir (bu sayede sayaç birer birer artar). ^sonucu, yığından çıkarmadan yığından kayıt defterine kopyalar.
#Kayıt defterindeki değeri birer birer vazaltır, azalmış değeri yığına iter, IP sağa çevirmeye çalışır Xve değeri yığından çıkar. Değer sıfır değilse, IP doğuya doğru ilerlemeye devam eder, kayıt sırasındaki değeri sıfıra düşürene kadar düşürür ve IP bir Xdal girer .
#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v#v
X X X X X X X X X X X X X X X X X X X X X X X X X
h y t f V b n j u r d c m k i e s x l o w a z p q
Dal, sayacın değerine karşılık gelen bir etikete yönlendirir. Etikete vurulduktan sonra, kontrol, etiketle başladığımız bölümdeki etiketin diğer oluşumuna atlayarak gbaşka bir yineleme başlatır. Aynı şekilde, gkayıt defterindeki değer, yazdırmamız gereken mektubun ASCII değerine kadar artırılır. Ardından karakter yazdırılır ve sayaç artırılır, başka bir etiket seçilir. Bu, son yinelemenin ardından sayaç girişe eşit oluncaya kadar gerçekleşir ve program sona erer.
Düzenle:
P.X~Zv+^
X *
! Z
İle aynı şeyi elde eder
P.X~ZZ*v+^
X
!
ama daha az boşlukla.
Düzenleme 2:
vv****v+^v+^v+^v+^*v++P
Yerine kullanılabilir:
*****************************************************************vP