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