Diberikan input dari program Babi , SickPig , DeadPig , QuinePig , atau DeafPig , pilih salah satu dari "bahasa" itu secara acak dan tafsirkan input sebagai "bahasa" itu.
Pertama, pilih secara acak antara satu dari lima anggota "seri Babi":
Babi
Jika pilihannya adalah Babi, meniru juru bahasa referensi dengan melakukan hal berikut:
Temukan kemunculan kata pertama
PIG
di input (peka huruf besar kecil).Jika kata
PIG
itu tidak muncul di input, output pesanFile must contain the string 'PIG'.
dan keluar.Jika tidak, pisahkan string input pada kemunculan pertama
PIG
. Keluarkan teks setelah kemunculan pertamaPIG
ke file dengan nama file teks sebelumnyaPIG
.PIG
dapat terkandung dalam teks yang akan di-output (jadi, inputfooPIGbarPIGbaz
harus di-outputbarPIGbaz
ke file bernamafoo
)
Perhatikan bahwa penerjemah referensi mengambil input melalui argumen baris perintah yang menentukan nama file untuk dibaca. Namun, kiriman Anda dapat menerima input dari salah satu metode standar yang diterima di PPCG.
SickPig
Jika pilihannya adalah SickPig, ikuti instruksi yang sama seperti Pig. Namun, alih-alih menulis teks setelah
PIG
ke file, pilih secara acak dari daftar berikutGRUNT MOAN OINK BURP GROAN WHINE
dan output itu ke file sebagai gantinya. Pilihan acak ini harus independen dari pilihan sebelumnya (jadi, output dari
GRUNT
harus memiliki 1/5 * 1/6 = 1/30 peluang keseluruhan).DeadPig
DeadPig seperti SickPig, tetapi selalu menampilkan string berikut daripada memilih string secara acak:
Your pig has unfortunately died. Please try again.
QuinePig
QuinePig seperti Babi, tetapi alih-alih menulis teks setelah
PIG
ke file, ia malah menulis seluruh input ke file (jadi, inputfooPIGbarPIGbaz
harus outputfooPIGbarPIGbaz
ke file yang disebutfoo
).DeafPig
Jika pilihannya adalah DeafPig, jangan lakukan apa pun. (Babi itu tuli ... apa yang Anda harapkan?)
Aturan lain-lain:
"Acak" berarti setiap pilihan kira-kira memiliki kemungkinan yang sama besar (jadi, memilih Pig 90% dari waktu dan varian lainnya hanya 2,5% dari waktu tidak valid).
Anda dapat mengasumsikan bahwa nama file yang diminta akan selalu valid untuk sistem file Anda (tetapi mungkin berisi spasi, dll.).
Untuk semua varian Babi, kode Anda juga dapat menampilkan satu baris tambahan baris baru ke file.
Karena ini adalah kode-golf , kode terpendek dalam byte akan menang.