(A)의 입력을 감안할 때 돼지 , SickPig , DeadPig , QuinePig , 또는 DeafPig의 프로그램, 무작위로 사람들 "언어"중 하나를 선택하고 그 같은 입력을 해석 "언어입니다."
먼저 "Pig 시리즈"의 다섯 멤버 중 하나를 무작위로 선택하십시오.
돼지
선택이 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 였다면 아무 것도하지 마십시오. (돼지가 귀머거리인데 ... 무엇을 기대하십니까?)
기타 규칙 :
"임의의"는 각각의 선택이 대략 똑같이 가능해야 함을 의미합니다 (따라서 Pig의 90 %를 선택하고 다른 변형은 2.5 %의 시간 만 유효하지 않음).
요청한 파일 이름은 파일 시스템에 항상 유효하지만 공백 등을 포함 할 수 있다고 가정 할 수 있습니다.
Pig의 모든 변형에 대해 코드에서 선택적으로 단일 후행 줄 바꿈을 파일에 출력 할 수도 있습니다.
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 승리합니다.