ได้รับการป้อนข้อมูลของหมู , SickPig , DeadPig , QuinePigหรือ DeafPigโปรแกรมเลือกหนึ่งในบรรดา "ภาษา" สุ่มและตีความการป้อนข้อมูลที่ว่า "ภาษา".
ก่อนอื่นสุ่มเลือกระหว่างหนึ่งในห้าสมาชิกของ "Pig series":
หมู
หากตัวเลือกคือ Pig ให้เลียนแบบล่ามอ้างอิงโดยทำดังต่อไปนี้:
ค้นหาการเกิดขึ้นครั้งแรกของคำ
PIGในอินพุท (เล็ก ๆ )หากคำ
PIGไม่ปรากฏในอินพุตให้ส่งข้อความFile must contain the string 'PIG'.ออกและออกPIGมิฉะนั้นแยกสายป้อนบนเกิดขึ้นครั้งแรกของ เอาท์พุทข้อความหลังจากที่เกิดขึ้นครั้งแรกของการไฟล์ที่มีชื่อไฟล์ของข้อความก่อนPIGPIGPIGอาจมีอยู่ในข้อความที่จะส่งออก (ดังนั้นการป้อนข้อมูลของfooPIGbarPIGbazควรส่งออกbarPIGbazไปยังไฟล์ที่เรียกว่าfoo)
โปรดทราบว่าล่ามอ้างอิงใช้อินพุตผ่านอาร์กิวเมนต์บรรทัดคำสั่งที่ระบุชื่อไฟล์ที่จะอ่าน อย่างไรก็ตามการส่งของคุณอาจใช้วิธีการมาตรฐานที่ยอมรับบน PPCG
SickPig
หากตัวเลือกคือ SickPig ให้ทำตามคำแนะนำเดียวกับหมู อย่างไรก็ตามแทนที่จะเขียนข้อความหลังจาก
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ลงในไฟล์มันจะเขียนอินพุตทั้งหมดไปยังไฟล์แทน (ดังนั้นอินพุตfooPIGbarPIGbazควรส่งออกfooPIGbarPIGbazไปยังไฟล์ที่เรียกว่าfoo)DeafPig
ถ้าตัวเลือกคือ DeafPig ไม่ต้องทำอะไร (หมูหูหนวก ... คุณคาดหวังอะไร)
กฎเบ็ดเตล็ด:
"สุ่ม" หมายถึงแต่ละตัวเลือกควรมีโอกาสเท่ากัน (ดังนั้นการเลือกหมู 90% ของเวลาและตัวแปรอื่น ๆ เพียง 2.5% ของเวลานั้นไม่ถูกต้อง)
คุณอาจสมมติว่าชื่อไฟล์ที่ร้องขอจะใช้ได้กับระบบไฟล์ของคุณเสมอ (แต่อาจมีช่องว่าง ฯลฯ )
สำหรับตัวแปรทั้งหมดของ Pig รหัสของคุณอาจเลือกที่จะส่งออกบรรทัดใหม่ต่อท้ายหนึ่งบรรทัดไปยังไฟล์เช่นกัน
เนื่องจากนี่คือcode-golfรหัสที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ