Dato un input di un programma Pig , SickPig , DeadPig , QuinePig o DeafPig , scegliere una di quelle "lingue" in modo casuale e interpretare l'input come quella "lingua".
Innanzitutto, scegli casualmente tra uno dei cinque membri della "serie Pig":
Maiale
Se la scelta era Pig, imita l' interprete di riferimento nel modo seguente:
Trova la prima occorrenza della parola
PIG
nell'input (sensibile al maiuscolo / minuscolo).Se la parola
PIG
non appare nell'input, emette il messaggioFile must contain the string 'PIG'.
ed esce.Altrimenti, dividere la stringa di input alla prima occorrenza di
PIG
. Emette il testo dopo la prima occorrenzaPIG
in un file con un nome file del testo precedentePIG
.PIG
può essere contenuto nel testo da emettere (quindi, un input difooPIGbarPIGbaz
dovrebbe essere emessobarPIGbaz
in un file chiamatofoo
).
Si noti che l'interprete di riferimento accetta l'input tramite un argomento della riga di comando che specifica un nome file da cui leggere. Tuttavia, il tuo invio può ricevere input in uno dei metodi standard accettati su PPCG.
SickPig
Se la scelta era SickPig, seguire le stesse istruzioni di Pig. Tuttavia, invece di scrivere il testo dopo
PIG
nel file, scegliere in modo casuale dal seguente elencoGRUNT MOAN OINK BURP GROAN WHINE
e invece l'output nel file. Questa scelta casuale deve essere indipendente dalla scelta precedente (quindi, un output di
GRUNT
dovrebbe avere una probabilità complessiva di 1/5 * 1/6 = 1/30).DeadPig
DeadPig è come SickPig, ma genera sempre la seguente stringa invece di scegliere casualmente una stringa:
Your pig has unfortunately died. Please try again.
QuinePig
QuinePig è come Pig, ma invece di scrivere il testo dopo
PIG
nel file, scrive invece l'intero input nel file (quindi, un input difooPIGbarPIGbaz
dovrebbe essere emessofooPIGbarPIGbaz
in un file chiamatofoo
).DeafPig
Se la scelta era DeafPig, non fare nulla. (Il maiale è sordo ... cosa ti aspetti?)
Regole varie:
"Casuale" significa che ogni scelta dovrebbe essere approssimativamente ugualmente probabile (quindi, scegliere Pig il 90% delle volte e le altre varianti solo il 2,5% delle volte non è valido).
Puoi presumere che i nomi dei file richiesti siano sempre validi per il tuo file system (ma possono contenere spazi, ecc.).
Per tutte le varianti di Pig, il tuo codice può facoltativamente generare anche una sola nuova riga finale nel file.
Poiché si tratta di code-golf , vincerà il codice più breve in byte.