Учитывая ввод программ 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 ваш код может дополнительно выводить в конце одну завершающую новую строку.
Поскольку это код-гольф , победит самый короткий код в байтах.