З огляду на введення програми Pig , SickPig , DeadPig , QuinePig або DeafPig , виберіть одну з цих "мов" випадковим чином і інтерпретуйте вклад як цю "мову".
По-перше, випадковим чином вибирайте одного з п’яти учасників "Свині серії":
Свиня
Якщо вибір був Pig, імітуйте перекладача , виконуючи наступні дії:
Знайдіть перше виникнення слова
PIG
у введенні (залежно від регістру).Якщо слово
PIG
не відображається на вводі, виведіть повідомленняFile must contain the string 'PIG'.
та вийдіть.В іншому випадку розділіть рядок введення при першому появі
PIG
. Виведіть текст після першого появи уPIG
файлі з назвою цього тексту ранішеPIG
.PIG
може міститись у тексті для виведення (таким чином, вхідfooPIGbarPIGbaz
повинен виводитиbarPIGbaz
у файл, що називаєтьсяfoo
).
Зауважте, що довідковий інтерпретатор приймає введення через аргумент командного рядка, який визначає ім'я файлу, з якого слід читати. Однак ваше подання може взяти участь у будь-якому зі стандартних методів, прийнятих на PPCG.
Хворі свині
Якщо вибір був 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, але замість того, щоб писати текст після
PIG
цього у файл, він замість цього записує весь вхід у файл (так, вхідfooPIGbarPIGbaz
повинен виводитиfooPIGbarPIGbaz
у файл, який називаєтьсяfoo
).Глухий свинь
Якщо вибір був DeafPig, нічого не робіть. (Свиня глуха ... що ти очікуєш?)
Різні правила:
"Випадковий" означає, що кожен вибір повинен бути приблизно однаково вірогідним (таким чином, вибір Свині 90% часу, а інші варіанти лише 2,5% часу недійсні).
Ви можете припустити, що запитувані імена файлів завжди будуть дійсними для вашої файлової системи (але вони можуть містити пробіли тощо).
Для всіх варіантів Pig, ваш код може необов'язково виводити в файл також одну проміжну нову рядок.
Оскільки це код-гольф , найкоротший код у байтах виграє.