Biorąc pod uwagę dane wejściowe programu Pig , SickPig , DeadPig , QuinePig lub DeafPig , wybierz jeden z tych „języków” losowo i zinterpretuj dane wejściowe jako „język”.
Po pierwsze, losowo wybierz jednego z pięciu członków „Świni”:
Świnia
Jeśli wybrano Świnia, naśladuj tłumacza referencyjnego , wykonując następujące czynności:
Znajdź pierwsze wystąpienie słowa
PIGna wejściu (rozróżniana jest wielkość liter).Jeśli słowo
PIGnie pojawia się na wejściu, wyślij komunikatFile must contain the string 'PIG'.i wyjdź.W przeciwnym razie podziel łańcuch wejściowy przy pierwszym wystąpieniu
PIG. Wypisuj tekst po pierwszym wystąpieniuPIGdo pliku z nazwą pliku wcześniejPIG.PIGmoże być zawarty w tekście, który ma być wyprowadzony (więc wejściefooPIGbarPIGbazpowinno wypisać siębarPIGbazdo pliku o nazwiefoo).
Zauważ, że interpreter odniesienia pobiera dane wejściowe za pomocą argumentu wiersza poleceń, który określa nazwę pliku do odczytu. Twoje zgłoszenie może jednak uwzględniać dowolną standardową metodę akceptowaną w PPCG.
SickPig
Jeśli wybór padł na SickPig, postępuj zgodnie z tymi samymi instrukcjami, co Świnia. Jednak zamiast wpisywać tekst
PIGdo pliku, wybierz losowo z poniższej listyGRUNT MOAN OINK BURP GROAN WHINEi zamiast tego wyślij go do pliku. Ten losowy wybór musi być niezależny od poprzedniego wyboru (więc wyjście
GRUNTpowinno mieć ogólną szansę 1/5 * 1/6 = 1/30).DeadPig
DeadPig jest jak SickPig, ale zawsze wyświetla następujący ciąg zamiast losowego wybierania ciągu:
Your pig has unfortunately died. Please try again.QuinePig
QuinePig jest jak Pig, ale zamiast zapisywać tekst po
PIGpliku, zamiast tego zapisuje całe dane wejściowe do pliku (więc wejściefooPIGbarPIGbazpowinno wypisać sięfooPIGbarPIGbazdo pliku o nazwiefoo).DeafPig
Jeśli wybór padł na DeafPig, nie rób nic. (Świnia jest głucha ... czego oczekujesz?)
Różne zasady:
„Losowy” oznacza, że każdy wybór powinien być w przybliżeniu jednakowo prawdopodobny (więc wybranie Świni w 90% przypadków, a inne warianty tylko w 2,5% przypadków jest nieprawidłowe).
Możesz założyć, że żądane nazwy plików będą zawsze poprawne dla twojego systemu plików (ale mogą zawierać spacje itp.).
Dla wszystkich wariantów Pig Twój kod może opcjonalnie wypisać do pliku również jedną końcową linię nowego wiersza.
Ponieważ jest to code-golf , wygra najkrótszy kod w bajtach.