N.Puck,.Page,.Ford,.Ajax,.Act I:.Scene I:.[Enter Puck and Ford]Puck:Listen to thy heart!Ford:You is the difference between a cat and I.Scene V:.[Exeunt][Enter Page and Ajax]Ajax:You is the difference between a cat and Ford.Scene X:.Page:You is the product of Puck and I.Is you as big as zero?If so,you is the sum of the sum of the sum of a big big big big big cat and a big big big cat and a big cat and a cat.If not,you big big big big big cat.Speak thy mind!Ajax:You is the sum of you and a cat.Is you as big as Ford?If not,let us return to Scene X.Page:You is the sum of a big big big cat and a big cat.Speak thy mind![Exit Page][Enter Puck]Ajax:You is the sum of you and a cat.Is you as big as Ford?If not,let us return to Scene V.[Exeunt]
온라인으로 사용해보십시오!
편집 : 공식 SPL 구현과 호환되도록 답변을 만들었습니다. 이전에는 작동하지 못했습니다.
장면 번호가 연속적 일 필요가 없기 때문에 6 바이트를 사용했습니다.
설명 :
SPL은 셰익스피어의 연극처럼 보이도록 설계된 esolang입니다. 양의 명사는 값이 1 (여기서는 고양이 가 사용됨)이고 음의 명사는 -1 (아무 사용되지 않았지만 돼지 는 그 중 하나)입니다. 형용사는 상수에 2를 곱하여 상수를 수정합니다.
N.
첫 번째 점까지의 모든 것은 제목이며 중요하지 않습니다.
Puck,. row counter
Page,. column counter
Ford,. input
Ajax,. temp
문자는 정수 변수이며 각 변수에는 스택이 있지만 해당 기능을 사용할 필요는 없습니다.
Act I:.
Scene I:.
행위와 장면은 goto 레이블로 사용됩니다
[Enter Puck and Ford]
정확히 두 문자가 동시에 무대에있는 경우에만 유용합니다.
Puck:Listen to thy heart!
숫자를 읽고 Ford가 기억하도록합니다.
Ford:You is the difference between a cat and I.
보시다시피 Engrish는 SPL에서 유효합니다. 이것은 퍽의 가치를 "고양이와 나는 다른 것"으로 만듭니다. 그러나 그것은 무엇을 의미합니까? cat
긍정적 인 명사 Puck = 1 - Ford
입니다.
Scene II:.
[Exeunt]
Exeunt는 "종료"의 복수형 일 뿐이며, 논쟁이 없으면 무대에있는 모든 사람이 퇴장한다는 것을 의미합니다.
[Enter Page and Ajax]
Ajax:You is the difference between a cat and Ford.
또한 Page = 1 - Ford
다른 배우가 말 했으므로 I
잘못되었을 것입니다. 루프이기 때문에의 값을 복사 할 수 없습니다 Puck
.
Scene III:.
Page:You is the product of Puck and I.
지금까지는 매우 간단합니다. Ajax = Puck * Page
.
Is you as big as zero?
"as [adj] as"는 ==
연산자입니다.
If so,you is the sum of the sum of the sum of a big big big big big cat and a big big big cat and a big cat and a cat.
Ajax == 0 ... "cat"이 1이면 "big cat"은 2이고 "big big cat"는 4입니다. 단순 상수를 대체 한 후 "32와 8과 2와 1의 합의 합"-> "40과 2와 1의 합의 합"-> "42와 1의 합"을 얻는다 -> "43", +의 ASCII입니다.
If not,you fat fat fat fat fat cat.
그렇지 않으면 그냥 "뚱뚱한 뚱뚱한 뚱뚱한 뚱뚱한 고양이"이므로 Ajax는 공간의 ASCII 인 32의 값을 얻습니다.
Speak thy mind!
문자를 출력하는 명령입니다.
Ajax:
You sum you and cat.Is you as big as Ford?If not,let us return to Scene III.
이것은 루프 구조입니다. "당신과 고양이를 합쳐서"페이지를 증가시킵니다 if(Page != Ford) goto Scene III
. 프로그램의 나머지 부분은 동일한 구성 요소를 사용하므로 더 읽기 쉬운 의사 코드 버전이 있습니다.
장면 1 :
입력 = [입력 번호];
행 = 0-입력 + 1;
장면 2 :
col = 0-입력 + 1;
장면 3 :
임시 = 행 * 열;
if (temp == 0) {
온도 = '+';
}그밖에{
온도 = '';
}
putchar (temp);
페이지 = 페이지 + 1;
if (Page! = Ford) goto Scene3;
아약스 = 10;
putchar (아약스);
퍽 = 퍽 + 1;
if (Puck! = Ford) goto Scene2;