O objetivo deste código golf é criar um intérprete para a linguagem de programação HQ9 +.
Existem 4 comandos nessa linguagem de programação:
- H - imprime "Olá, mundo!"
- Q - imprime o código fonte do programa
- 9 - imprime a letra da música "99 garrafas de cerveja"
- + - incrementa o acumulador
As regras:
- Porque o acumulador não está definido, você pode ignorar o comando +
- Seu programa deve solicitar entrada (essa entrada será o código-fonte) ou o código-fonte é lido de um arquivo
- Você não tem permissão para colocar a letra de "99 garrafas de cerveja" em um arquivo e ler o texto do arquivo
- Você não tem permissão para usar um algoritmo de compactação, como GZip ou BZip, para compactar o texto da música: você deve criar seu próprio algoritmo de compactação. Isso não precisa ser um algoritmo complexo, mas tente compactar o texto o máximo possível (lembre-se: este é um código de golfe, o código com o menor número de bytes ganha)
- Se o código-fonte contiver um caractere que não seja H , Q , 9 ou + , emita a saída "O código-fonte contém caracteres inválidos" antes de executar qualquer comando! Isso significa que, se o código-fonte for,
H1
por exemplo, não saiaHello, world!
antes de sairSource code contains invalid characters
. Não, saída imediataSource code contains invalid characters
- Se o seu intérprete aceita caracteres maiúsculos e minúsculos, você recebe -8 na contagem de caracteres
Boa sorte!