Deadfish es un "lenguaje de programación" de broma con cuatro comandos. Como la página de Esolang es un poco contradictoria y los intérpretes de esa página no funcionan exactamente igual, debe implementar la siguiente variación:
Especificación
- Hay un acumulador que tiene al menos 16 bits de tamaño, se permite más pero no menos. Los números negativos no necesitan ser compatibles. El acumulador es
0cuando comienza el programa. - Existen los siguientes dos conjuntos de cuatro comandos, y su programa debe admitir ambos al mismo tiempo.
Deadfish estándar │ Variante XKCD │ Significado ─────────────────────┼──────────────────┼───────── ─────────────────────────── i │ x │ Incremento acumulador d │ d │ Decremento acumulador s │ k │ Cuadrado (acc = acc * acc) o │ c │ Acumulador de salida, como un número - Si, después de ejecutar un comando, el acumulador es
-1o256, el acumulador debe restablecerse a cero. Tenga en cuenta que esto no es normal. Si, por ejemplo, el acumulador es20, y elscomando se ejecuta, el acumulador debería estar400después. Del mismo modo, si el acumulador es257ydse ejecuta el comando, el acumulador debería convertirse0. - Cualquier entrada que no sea uno de estos comandos debe ignorarse.
Programas de prueba
xisksodebería salir0xiskiscdebería salir289
I / O
Su programa debe mostrar un mensaje: >>. La solicitud debe estar al comienzo de una nueva línea. Luego debería leer una línea de entrada del usuario y ejecutar los comandos dados de izquierda a derecha. Al generar números, los números deben estar separados. Es decir, 12 34está bien, 12,34está bien,
12
34
está bien, pero 1234no lo está.
Su programa debe seguir haciendo esto en un bucle, al menos hasta que EOFse alcance.
Sesión de ejemplo:
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>
#{STDIN.gets}funcionaría, pero de hecho no lo hace.