Bir Pig , SickPig , DeadPig , QuinePig veya DeafPig programının bir girdisi verildiğinde , bu "dillerden" birini rastgele seçin ve girdiyi "dil" olarak yorumlayın.
İlk olarak, "Domuz serisinin" beş üyesinden birini rastgele seçin:
Domuz
Seçim Pig olsaydı, aşağıdakileri yaparak referans yorumlayıcıyı taklit edin :
Girişteki kelimenin ilk tekrarlamasını bulun
PIG
(büyük / küçük harfe duyarlı).Sözcük
PIG
girişte görünmüyorsa, iletinin çıktısınıFile must contain the string 'PIG'.
alıp çıkın.Aksi takdirde, giriş dizesini ilk oluşumunda bölün
PIG
. Metnin ilk oluşumundan sonra, daha önce metninPIG
dosya adıyla bir dosyaya çıktı alınPIG
.PIG
çıktı alınacak metinde yer alabilir (bu nedenle, bir dosyaya birfooPIGbarPIGbaz
çıkış vermelidir ).barPIGbaz
foo
Referans yorumlayıcısının, okunacak bir dosya adı belirten bir komut satırı bağımsız değişkeni yoluyla girdi aldığını unutmayın. Ancak, gönderiminiz PPCG'de kabul edilen standart yöntemlerin herhangi birinde girdi alabilir.
SickPig
Seçim SickPig ise, Pig ile aynı talimatları uygulayın. Ancak, metni
PIG
dosyaya yazmak yerine , aşağıdaki listeden rastgele seçinGRUNT MOAN OINK BURP GROAN WHINE
ve bunu dosyaya çıktılar. Bu rastgele seçim önceki seçimden bağımsız olmalıdır (bu nedenle, bir çıktı
GRUNT
toplamda 1/5 * 1/6 = 1/30 şansa sahip olmalıdır).DeadPig
DeadPig SickPig gibidir, ancak rastgele bir dize seçmek yerine her zaman aşağıdaki dizeyi çıkarır:
Your pig has unfortunately died. Please try again.
QuinePig
QuinePig Pig gibidir, ancak metni
PIG
dosyaya yazmak yerine, tüm girdiyi dosyaya yazar (bu nedenle, girilen bir dosyaya birfooPIGbarPIGbaz
çıkış çıkışı gerekir ).fooPIGbarPIGbaz
foo
DeafPig
Seçim DeafPig olsaydı, hiçbir şey yapma. (Domuz sağır ... ne bekliyorsun?)
Çeşitli kurallar:
"Rastgele", her seçimin kabaca eşit olması gerektiği anlamına gelir (bu nedenle, zamanın% 90'ını Pig ve diğer varyantları zamanın yalnızca% 2.5'inin geçersiz olduğu anlamına gelir).
İstenen dosya adlarının dosya sisteminiz için her zaman geçerli olacağını varsayabilirsiniz (ancak boşluk, vb. İçerebilir).
Pig'in tüm varyantları için, kodunuz isteğe bağlı olarak dosyaya tek bir satırsonu da gönderebilir.
Bu kod golf olduğundan , bayt cinsinden en kısa kod kazanacaktır.