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
0
cuando 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
-1
o256
, el acumulador debe restablecerse a cero. Tenga en cuenta que esto no es normal. Si, por ejemplo, el acumulador es20
, y els
comando se ejecuta, el acumulador debería estar400
después. Del mismo modo, si el acumulador es257
yd
se ejecuta el comando, el acumulador debería convertirse0
. - Cualquier entrada que no sea uno de estos comandos debe ignorarse.
Programas de prueba
xiskso
debería salir0
xiskisc
deberí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 34
está bien, 12,34
está bien,
12
34
está bien, pero 1234
no lo está.
Su programa debe seguir haciendo esto en un bucle, al menos hasta que EOF
se 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.