Stax , 11 bayt (4 puan)
'''cc'~~'dd
Çevrimiçi çalıştırın ve hata ayıklayın!
Bu meydan okumaya ilk (kronolojik olarak) bir cevabı 4 veya daha yüksek bir puanla vermek benim için bir onurdur. Belki de puan daha yüksek olabilir.
Stax'ta, tek bir karakterden oluşan bir dize değişmezi ile birlikte yazılır '
, yani '', 'c, 'd, '~
hepsi dize değişmezleridir. Karşılık gelen komutlar c
d
ve ~
araçlar, ana yığının tepesini çoğaltır, ana yığının tepesini çıkarır ve ana yığının tepesini çıkar ve sırasıyla giriş yığına itir. Bu zorluk için, girdi yığını çıktıyı etkilemez ve önemli değildir, dolayısıyla söyleyebiliriz d
ve ~
aynıyız.
açıklama
Kodu birkaç parçaya bölmek ve ayrı olarak değerlendirmek en iyisidir.
Tahrif edilmediğinde, '''cc
hazır bilgiyi '
ve hazır bilgiyi c
ana yığına iter ve üst kısmı çoğaltır, böylece yığın (alttan aşağıya) olur c,c,'
.
Tahrif edilmediğinde '~~
, değişmeze basar ~
ve sonra çıkar (ve giriş yığınına itilir), bu temel olarak ana yığın için işlem yapmaz.
Tahrif edilmediğinde 'dd
, değişmezi iter d
ve sonra çıkar, ana yığın için başka bir işlem yapmaz .
Programın sonunda, açık bir çıktı olmadığından, ana yığının üstü örtük bir şekilde yazdırılır.
Program olduğu gibi çalışıyorsa, son yığın hala çalışır c,c,'
ve çıkacaktırc
.
İlk kısım olursa, ''cc
bir hazır bilgimiz var '
ve iki kopya talimatı var, final yığını olacak ',','
. Diğer iki parçanın çalışmadığı göz önüne alındığında, sonuç'
.
İlk kısım olursa, '''c
sonuç temelde engellenmemiş olanla aynıdır, ancak c
çoğaltılmaz. Yani yığın olacak c,'
. İki tane ameliyat dışı kaldıktan sonra yığının tepesic
.
Böylece ilk bölümde radyasyonu tespit edebiliriz.
İkinci kısım ve üçüncü kısım tamamen aynı şekilde çalışır. Üçüncü kısmı örnek olarak alacağım.
Üçüncü parça tahrif edilmişse, ilk iki parça olduğu gibi tutulur ve üçüncü parça çalıştırılmadan önce istif c,c,'
Üçüncü parça olursa, 'd
hazır bilgi d
ana yığının üstüne itilir ve daha fazla bir şey yapılmaz. Ana yığının tepesi şimdi çıkılacak d
olandır.
Üçüncü parça olursa, dd
ana istiften iki eleman çıkarılır ve şimdi istifin üst kısmı çıkar '
ve çıkar.
Bu yüzden üçüncü bölümde radyasyonu tespit edebiliriz. Aynı sebepten dolayı ikinci bölümde radyasyon tespit edebiliyoruz.