> <> , 56 bayt
^
.
+
8
f
0
o
a
o
~
:
?
~
:
?
:
-
*
4
8
:
^
^
}
*
3
d
'
Çevrimiçi deneyin! veya tüm mutasyonları doğrulayın .
Orijinal program nasıl çalışır (modası geçmiş)
Yorumlayıcı hücre (0, 0) içinde başlar . ^
yönü yukarı doğru ayarlar , böylece yönerge işaretçisi (IP) hücreye (0, 20) sarılır .
'
dize modunu etkinleştirir: bir sonraki '
ile karşılaşılıncaya kadar IP altındaki tüm karakterler yığına itilir. Aynı '
şey etrafa sarıldıktan sonra tekrar bulunur, bu yüzden
d3*}^^:84*=?~oao0f.^
IP hala (0, 19) 'a iniyor ve hala yukarı doğru gidiyor. Yürütülmesi d3*}
iter 13 = 0xd sonra, 3 , çarpma, her iki değer ( 39 / tek tırnak ), daha sonra sağa doğru yığın döner. Bu yığını aşağıdaki gibi bırakır.
'd3*}^^:84*=?~oao0f.^
Sonraki iki talimat ( ^
) bu noktada hiçbir şey yapmaz.
:84*=
yığının üstünü çoğaltır, 8 ve 4'ü iter , çoğaltır ( 32 / boşluk ), sonra çoğaltılan karakteri boşlukla eşitlik açısından test eder . Değiştirilmemiş program için, bu her zaman 0 değerini itecektir .
?
yığının üstü hatalıysa bir sonraki talimatı atlar. Orijinal program için, her zaman ~
, her zaman atlanır.
oao
yığının üstünü çıkar ve yazdırır, 10 / satır beslemeyi iter , ardından çıkar ve satır beslemeyi yazdırır .
Son olarak , yığındaki bir sonraki karakterle başlayarak 0f.
hücreye (0, 15) (en alttaki ^
) atlar .
Yığın boş olduğunda, tüm kaynak kodu yazdırılır. :
başarısız olur ve program çıkar.
Değişen programlar nasıl çalışır (modası geçmiş)
Satır besleme olmayan karakterlerin çoğaltılması, programı yalnızca yatay olarak genişletir. Program dikey olarak yürütüldüğünden, bu ek talimatlar hiçbir zaman yürütülmez.
Bottomost önce satır besleme Kopyalama ^
hücreleri kayacak (0, 14) ve (0, 15) için (0, 15) ve (0, 16) . 0f.
şimdi en alttan önce hücreye atlayacaktır ^
, ki bu da a'dır , bu ^
nedenle program vardiyadan etkilenmez.
Son olarak, yinelenen satır besleme karakterleri de dizeyi değiştirir. Kısa çizgiler boşluklarla doldurulur, böylece hat beslemesi konumuna 32 / boşluk eklenir. boşluk için 1'i84*=
iter , bu nedenle sonraki talimatı atlamaz. Bu durumda,?
~
çıkar ve atar uzay yüzden şu o
yukarıdaki karakterini yazdırır boşluk yerine.
0
ve00
CJam'de her iki çıktı0
.