Deadfish , dört komutlu bir şaka "programlama dili" dir. Esolang sayfası biraz çelişkili olduğundan ve o sayfadaki tercümanların hepsi aynı şekilde çalışmadığından, aşağıdaki varyasyonları uygulamanız gerekir:
Şartname
- Boyutu en az 16 bit olan, daha fazlasına izin verilen, ancak daha az olmayan bir akümülatör vardır . Negatif numaraların desteklenmesi gerekmez. Akümülatör
0
program başladığı zamandır. - Aşağıdaki dört komut kümesi vardır ve programınız her ikisini de aynı anda desteklemelidir.
Standard Deadfish │ XKCD Varyant │ Anlamı ─────────────────────┼──────────────────┼───────── ─────────────────────────── i │ x │ Artış akümülatörü d │ d │ Azaltma akümülatörü s │ k │ Kare (acc = acc * acc) o │ c │ Sayı olarak çıkış akümülatörü
- Bir komutu yürüttükten sonra, akümülatör ya
-1
da256
ise, akünün sıfıra sıfırlanması gerekir. Bunun normal sarma olmadığına dikkat edin. Örneğin, akümülatör çalışıyorsa20
ves
komut çalıştırılırsa akümülatörün400
daha sonra olması gerekir . Benzer şekilde, akümülatörün257
ved
komutun çalıştırılması durumunda akümülatörün olması gerekir0
. - Bu komutlardan biri olmayan herhangi bir giriş göz ardı edilmelidir.
Test programları
xiskso
çıkmalı0
xiskisc
çıkmalı289
I / O
Programınız bir istem göstermesi gerekir: >>
. Bilgi istemi yeni bir satırın başında olmalıdır. Daha sonra bir kullanıcı girişi satırı okumalı ve verilen komutları soldan sağa çalıştırmalıdır. Rakamların çıktısını alırken, rakamların ayrılması gerekir. Yani, 12 34
tamam, 12,34
tamam
12
34
tamam, ama 1234
değil.
Programınız, bunu en azından EOF
ulaşılana kadar bir döngüde yapmaya devam etmelidir .
Örnek oturum:
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>
#{STDIN.gets}
işe yarayacağını düşünürdüm ama gerçekten işe yaramadı.