Deadfish é uma piada "linguagem de programação" com quatro comandos. Como a página Esolang é um pouco contraditória e os intérpretes dessa página não funcionam exatamente da mesma maneira, você deve implementar a seguinte variação:
Especificação
- Existe um acumulador que tem pelo menos 16 bits de tamanho, mais é permitido, mas menos não. Números negativos não precisam ser suportados. O acumulador é
0
quando o programa é iniciado. - Existem os dois conjuntos a seguir de quatro comandos, e seu programa deve suportar os dois ao mesmo tempo.
Peixe morto padrão │ Variante XKCD │ Significado ─────────────────────────────────────────────────────── ─────────────────────────── i │ x │ Acumulador de incremento d │ d accum Decremento acumulador s │ k │ Quadrado (acc = acc * acc) o │ c │ Acumulador de saída, como um número
- Se, após executar um comando, o acumulador for
-1
ou256
, o acumulador deverá ser redefinido para zero. Observe que isso não é normal. Se, por exemplo, o acumulador estiver20
e os
comando for executado, o acumulador deverá ser400
posterior. Da mesma forma, se o acumulador estiver257
e od
comando for executado, o acumulador deverá se tornar0
. - Qualquer entrada que não seja um desses comandos deve ser ignorada.
Programas de teste
xiskso
deve produzir0
xiskisc
deve produzir289
I / O
Seu programa deve exibir um aviso: >>
. O prompt deve estar no início de uma nova linha. Ele deve ler uma linha de entrada do usuário e executar os comandos fornecidos da esquerda para a direita. Ao emitir números, os números devem ser separados. Ou seja, 12 34
está bem, 12,34
está bem,
12
34
está OK, mas 1234
não está.
Seu programa deve continuar fazendo isso em um loop, pelo menos até que EOF
seja alcançado.
Sessão de exemplo:
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>
#{STDIN.gets}
funcionaria, mas na verdade não funciona.