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
PIGgiriş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 metninPIGdosya adıyla bir dosyaya çıktı alınPIG.PIGçıktı alınacak metinde yer alabilir (bu nedenle, bir dosyaya birfooPIGbarPIGbazçıkış vermelidir ).barPIGbazfoo
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
PIGdosyaya yazmak yerine , aşağıdaki listeden rastgele seçinGRUNT MOAN OINK BURP GROAN WHINEve bunu dosyaya çıktılar. Bu rastgele seçim önceki seçimden bağımsız olmalıdır (bu nedenle, bir çıktı
GRUNTtoplamda 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
PIGdosyaya yazmak yerine, tüm girdiyi dosyaya yazar (bu nedenle, girilen bir dosyaya birfooPIGbarPIGbazçıkış çıkışı gerekir ).fooPIGbarPIGbazfooDeafPig
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.