Deadfish - жартівлива "мова програмування" з чотирма командами. Оскільки сторінка Esolang трохи суперечлива, а перекладачі на цій сторінці працюють не однаково, слід застосувати наступну варіацію:
Специфікація
- Є акумулятор розміром принаймні 16 біт, більше дозволено, але менше - ні. Негативні цифри не потрібно підтримувати. Акумулятор - це
0
коли програма запускається. - Існують наступні два набори з чотирьох команд, і ваша програма повинна підтримувати обидві одночасно.
Стандартний мертвий ish Варіант XKCD │ Значення ───────────────────────────────────────────────────── ─────────────────────────── i │ x │ акумулятор приросту d │ d │ акумулятор зменшення s │ k │ площа (acc = acc * acc) o │ c │ Вихідний акумулятор, як число
- Якщо після виконання команди акумулятор є
-1
або256
, акумулятор повинен бути скинутий до нуля. Зауважте, що це не нормальне обгортання. Якщо, скажімо, акумулятор є20
, іs
команда виконується, акумулятор повинен бути400
згодом. Аналогічно, якщо акумулятор є257
іd
команда виконується, акумулятор повинен стати0
. - Будь-який ввід, який не є однією з цих команд, слід ігнорувати.
Тестові програми
xiskso
повинен вивести0
xiskisc
повинен вивести289
I / O
Ваша програма повинна відображати підказку: >>
. Підказка повинна бути на початку нового рядка. Потім він повинен прочитати рядок введення користувача та запустити задані команди зліва направо. При виведенні чисел цифри повинні бути розділені. Тобто 12 34
все в порядку, 12,34
це добре,
12
34
гаразд, але 1234
це не так.
Ваша програма повинна робити це в циклі, принаймні, поки не EOF
буде досягнуто.
Приклад сеансу:
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>
#{STDIN.gets}
буде працювати, але насправді це не так.