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
0program 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
-1da256ise, akünün sıfıra sıfırlanması gerekir. Bunun normal sarma olmadığına dikkat edin. Örneğin, akümülatör çalışıyorsa20veskomut çalıştırılırsa akümülatörün400daha sonra olması gerekir . Benzer şekilde, akümülatörün257vedkomutun ç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ı0xiskiscçı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 34tamam, 12,34tamam
12
34
tamam, ama 1234değil.
Programınız, bunu en azından EOFulaşı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ı.