Étant donné une entrée d'un programme Pig , SickPig , DeadPig , QuinePig ou DeafPig , choisissez l'une de ces "langues" au hasard et interprétez l'entrée comme cette "langue".
Tout d'abord, choisissez aléatoirement l'un des cinq membres de la "série Pig":
Porc
Si le choix était Pig, imitez l' interpréteur de référence en procédant comme suit:
Recherchez la première occurrence du mot
PIG
dans l'entrée (sensible à la casse).Si le mot
PIG
n'apparaît pas dans l'entrée,File must contain the string 'PIG'.
sortez le message et quittez.Sinon, divisez la chaîne d'entrée à la première occurrence de
PIG
. Sortez le texte après la première occurrence dePIG
dans un fichier avec un nom de fichier du texte précédentPIG
.PIG
peut être contenue dans le texte à sortir (donc, une entrée defooPIGbarPIGbaz
devrait sortirbarPIGbaz
dans un fichier appeléfoo
).
Notez que l'interpréteur de référence prend l'entrée via un argument de ligne de commande qui spécifie un nom de fichier à lire. Cependant, votre soumission peut prendre en compte l'une des méthodes standard acceptées sur PPCG.
SickPig
Si le choix était SickPig, suivez les mêmes instructions que Pig. Cependant, au lieu d'écrire le texte après
PIG
dans le fichier, choisissez au hasard dans la liste suivanteGRUNT MOAN OINK BURP GROAN WHINE
et sortie à la place dans le fichier. Ce choix aléatoire doit être indépendant du choix précédent (donc, une sortie de
GRUNT
devrait avoir une chance 1/5 * 1/6 = 1/30 dans l'ensemble).DeadPig
DeadPig est comme SickPig, mais il génère toujours la chaîne suivante au lieu de choisir une chaîne au hasard:
Your pig has unfortunately died. Please try again.
QuinePig
QuinePig est comme Pig, mais au lieu d'écrire le texte après
PIG
dans le fichier, il écrit plutôt l'entrée entière dans le fichier (donc, une entrée defooPIGbarPIGbaz
devrait sortirfooPIGbarPIGbaz
dans un fichier appeléfoo
).DeafPig
Si le choix était DeafPig, ne faites rien. (Le cochon est sourd ... à quoi vous attendez-vous?)
Règles diverses:
"Aléatoire" signifie que chaque choix devrait être à peu près tout aussi probable (donc, choisir Pig 90% du temps et les autres variantes seulement 2,5% du temps n'est pas valide).
Vous pouvez supposer que les noms de fichiers demandés seront toujours valides pour votre système de fichiers (mais ils peuvent contenir des espaces, etc.).
Pour toutes les variantes de Pig, votre code peut éventuellement générer une seule nouvelle ligne de fin dans le fichier.
Puisqu'il s'agit de code-golf , le code le plus court en octets gagnera.