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
PIGnell'input (sensibile al maiuscolo / minuscolo).Se la parola
PIGnon 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 occorrenzaPIGin un file con un nome file del testo precedentePIG.PIGpuò essere contenuto nel testo da emettere (quindi, un input difooPIGbarPIGbazdovrebbe essere emessobarPIGbazin 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
PIGnel file, scegliere in modo casuale dal seguente elencoGRUNT MOAN OINK BURP GROAN WHINEe invece l'output nel file. Questa scelta casuale deve essere indipendente dalla scelta precedente (quindi, un output di
GRUNTdovrebbe 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
PIGnel file, scrive invece l'intero input nel file (quindi, un input difooPIGbarPIGbazdovrebbe essere emessofooPIGbarPIGbazin 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.