Deadfish to żart „język programowania” z czterema poleceniami. Ponieważ strona Esolang jest nieco sprzeczna, a tłumacze na tej stronie nie działają dokładnie tak samo, należy wprowadzić następującą odmianę:
Specyfikacja
- Jest akumulator, który ma co najmniej 16 bitów, więcej jest dozwolone, ale mniej nie. Liczby ujemne nie muszą być obsługiwane. Akumulator jest w
0
momencie uruchomienia programu. - Istnieją następujące dwa zestawy czterech poleceń, a twój program musi obsługiwać oba jednocześnie.
Standard Deadfish │ Wariant XKCD │ Znaczenie ─────────────────────┼──────────────────┼───────── ─────────────────────────── i │ x │ Akumulator przyrostowy d │ d │ Akumulator zmniejszający się s │ k │ Kwadrat (acc = acc * acc) o │ c │ Akumulator wyjściowy, jako liczba
- Jeśli po wykonaniu polecenia akumulator jest ustawiony na albo,
-1
albo256
akumulator musi zostać zresetowany do zera. Pamiętaj, że nie jest to normalne zawijanie. Jeśli powiedzmy, że akumulator jest20
, as
polecenie zostanie wykonane, akumulator powinien być400
później. Podobnie, jeśli akumulator jest257
id
polecenie jest uruchomione, akumulator powinien się stać0
. - Wszelkie dane wejściowe, które nie są jednym z tych poleceń, należy zignorować.
Programy testowe
xiskso
powinien wyjść0
xiskisc
powinien wyjść289
I / O
Twój program powinien wyświetlić się monit: >>
. Monit musi znajdować się na początku nowej linii. Następnie powinien odczytać wiersz wprowadzony przez użytkownika i uruchomić podane polecenia od lewej do prawej. Podczas wyprowadzania liczb należy je rozdzielić. Tj. 12 34
Jest w porządku, 12,34
jest w porządku,
12
34
jest OK, ale 1234
nie jest.
Twój program powinien robić to w pętli, przynajmniej dopóki nie EOF
zostanie osiągnięty.
Przykładowa sesja:
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>
#{STDIN.gets}
zadziała, ale tak naprawdę nie działa.