Pig、 SickPig、DeadPig、 QuinePig、または DeafPigプログラムの入力が与えられたら、 それらの「言語」のいずれかをランダムに選択し、入力をその「言語」として解釈します。
まず、「豚シリーズ」の5つのメンバーのいずれかをランダムに選択します。
豚
選択肢が豚だった場合、以下を実行して参照インタープリターを模倣します。
PIG
入力で最初に出現する単語を検索します(大文字と小文字を区別します)。単語
PIG
が入力に表示されない場合は、メッセージFile must contain the string 'PIG'.
を出力して 終了します。それ以外の場合は、入力文字列をの最初の出現時に分割します
PIG
。最初に出現した後のテキストを、PIG
前のテキストのファイル名を持つファイルに出力しますPIG
。PIG
出力されるテキストに含まれている可能性があります(したがって、の入力は というファイルにfooPIGbarPIGbaz
出力barPIGbaz
する必要がありますfoo
)。
参照インタープリターは、読み込むファイル名を指定するコマンドライン引数を介して入力を受け取ることに注意してください。ただし、PPCGで受け入れられている標準的な方法のいずれかで提出することができます。
シックピッグ
SickPigを選択した場合は、Pigと同じ指示に従ってください。ただし、
PIG
ファイルの後にテキストを書き込む代わりに、次のリストからランダムに選択しますGRUNT MOAN OINK BURP GROAN WHINE
代わりにファイルに出力します。このランダムな選択は、前の選択とは独立している必要があります(したがって、の出力に
GRUNT
は全体で1/5 * 1/6 = 1/30のチャンスがあります)。DeadPig
DeadPigはSickPigに似ていますが、文字列をランダムに選択する代わりに、常に次の文字列を出力します。
Your pig has unfortunately died. Please try again.
QuinePig
QuinePigはPigに似
PIG
ていますが、テキストをファイルに書き込む代わりに、入力全体をファイルに書き込みます(したがって、の入力は というファイルにfooPIGbarPIGbaz
出力fooPIGbarPIGbaz
する必要がありますfoo
)。DeafPig
選択肢がDeafPigの場合、何もしません。(ブタは耳が聞こえません...何を期待しますか?)
その他の規則:
「ランダム」とは、それぞれの選択肢がほぼ同じ確率である必要があることを意味します(したがって、Pigを選択するのは90%の時間であり、他のバリアントを選択するのは2.5%の時間だけが無効です)。
要求されたファイル名は常にファイルシステムで有効であると想定することができます(ただし、スペースなどが含まれている場合があります)。
Pigのすべてのバリアントについて、コードはオプションでファイルに単一の末尾の改行を出力することもできます。
これはcode-golfであるため、バイト単位の最短コードが優先されます。