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
0momencie 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,
-1albo256akumulator musi zostać zresetowany do zera. Pamiętaj, że nie jest to normalne zawijanie. Jeśli powiedzmy, że akumulator jest20, aspolecenie zostanie wykonane, akumulator powinien być400później. Podobnie, jeśli akumulator jest257idpolecenie jest uruchomione, akumulator powinien się stać0. - Wszelkie dane wejściowe, które nie są jednym z tych poleceń, należy zignorować.
Programy testowe
xisksopowinien wyjść0xiskiscpowinien 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 34Jest w porządku, 12,34jest w porządku,
12
34
jest OK, ale 1234nie jest.
Twój program powinien robić to w pętli, przynajmniej dopóki nie EOFzostanie 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.