Dada una entrada de un programa Pig , SickPig , DeadPig , QuinePig o DeafPig , elija uno de esos "idiomas" al azar e interprete la entrada como ese "idioma".
Primero, elija al azar entre uno de los cinco miembros de la "serie Pig":
Cerdo
Si la elección fue Pig, imite al intérprete de referencia haciendo lo siguiente:
Encuentre la primera aparición de la palabra
PIG
en la entrada (distingue entre mayúsculas y minúsculas).Si la palabra
PIG
no aparece en la entrada, envíe el mensajeFile must contain the string 'PIG'.
y salga.De lo contrario, divida la cadena de entrada en la primera aparición de
PIG
. Envíe el texto después de la primera apariciónPIG
a un archivo con un nombre de archivo del texto anteriorPIG
.PIG
puede estar contenido en el texto que se generará (por lo tanto, una entrada defooPIGbarPIGbaz
debería generarbarPIGbaz
un archivo llamadofoo
).
Tenga en cuenta que el intérprete de referencia toma datos a través de un argumento de línea de comando que especifica un nombre de archivo para leer. Sin embargo, su envío puede recibir información de cualquiera de los métodos estándar aceptados en PPCG.
SickPig
Si la elección fue SickPig, siga las mismas instrucciones que Pig. Sin embargo, en lugar de escribir el texto después
PIG
en el archivo, elija al azar de la siguiente listaGRUNT MOAN OINK BURP GROAN WHINE
y enviarlo al archivo en su lugar. Esta elección aleatoria debe ser independiente de la elección anterior (por lo tanto, una salida de
GRUNT
debe tener una probabilidad de 1/5 * 1/6 = 1/30 en general).DeadPig
DeadPig es como SickPig, pero siempre genera la siguiente cadena en lugar de elegir una cadena al azar:
Your pig has unfortunately died. Please try again.
QuinePig
QuinePig es como Pig, pero en lugar de escribir el texto después
PIG
en el archivo, en su lugar escribe la entrada completa en el archivo (por lo tanto, una entrada defooPIGbarPIGbaz
debería salirfooPIGbarPIGbaz
a un archivo llamadofoo
).DeafPig
Si la elección fue DeafPig, no haga nada. (El cerdo es sordo ... ¿qué esperas?)
Reglas misceláneas:
"Aleatorio" significa que cada opción debe ser aproximadamente igual de probable (por lo tanto, elegir Pig el 90% del tiempo y las otras variantes solo el 2.5% del tiempo no es válido).
Puede suponer que los nombres de archivo solicitados siempre serán válidos para su sistema de archivos (pero pueden contener espacios, etc.).
Para todas las variantes de Pig, su código también puede generar opcionalmente una nueva línea final al archivo.
Como se trata de código golf , el código más corto en bytes ganará.