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