Dada a entrada de um programa Pig , SickPig , DeadPig , QuinePig ou DeafPig , escolha um desses "idiomas" aleatoriamente e interprete a entrada como "idioma".
Primeiro, escolha aleatoriamente entre um dos cinco membros da "série Pig":
Porco
Se a opção foi Pig, imite o intérprete de referência , fazendo o seguinte:
Encontre a primeira ocorrência da palavra
PIG
na entrada (diferencia maiúsculas de minúsculas).Se a palavra
PIG
não aparecer na entrada, envie a mensagemFile must contain the string 'PIG'.
e saia.Caso contrário, divida a sequência de entrada na primeira ocorrência de
PIG
. Envie o texto após a primeira ocorrência dePIG
para um arquivo com um nome de arquivo do texto anteriorPIG
.PIG
pode estar contido no texto a ser produzido (portanto, uma entrada defooPIGbarPIGbaz
deve ser enviadabarPIGbaz
para um arquivo chamadofoo
).
Observe que o intérprete de referência recebe entrada por meio de um argumento de linha de comando que especifica um nome de arquivo para leitura. No entanto, sua submissão pode ser inserida em qualquer um dos métodos padrão aceitos no PPCG.
SickPig
Se a opção foi SickPig, siga as mesmas instruções que o Pig. No entanto, em vez de escrever o texto depois
PIG
no arquivo, escolha aleatoriamente na lista a seguirGRUNT MOAN OINK BURP GROAN WHINE
e envie isso para o arquivo. Essa escolha aleatória deve ser independente da escolha anterior (portanto, uma saída de
GRUNT
deve ter uma chance de 1/5 * 1/6 = 1/30 no total).DeadPig
DeadPig é como SickPig, mas sempre gera a seguinte string em vez de escolher aleatoriamente uma string:
Your pig has unfortunately died. Please try again.
QuinePig
O QuinePig é como o Pig, mas em vez de escrever o texto depois
PIG
no arquivo, ele grava toda a entrada no arquivo (portanto, uma entrada defooPIGbarPIGbaz
deve ser enviadafooPIGbarPIGbaz
para um arquivo chamadofoo
).DeafPig
Se a escolha foi DeafPig, não faça nada. (O porco é surdo ... o que você espera?)
Regras diversas:
"Aleatório" significa que cada opção deve ser igualmente provável (portanto, escolher Pig 90% das vezes e as outras variantes apenas 2,5% das vezes são inválidas).
Você pode supor que os nomes de arquivos solicitados sempre serão válidos para o seu sistema de arquivos (mas eles podem conter espaços etc.).
Para todas as variantes do Pig, seu código também pode, opcionalmente, gerar uma nova linha à direita no arquivo.
Como esse é o código-golfe , o código mais curto em bytes será vencedor.