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:.
ฉากและฉากใช้เป็นป้ายข้ามทาง
[Enter Puck and Ford]
มันจะมีประโยชน์ก็ต่อเมื่อตัวละครสองตัวอยู่บนเวทีพร้อมกัน
Puck:Listen to thy heart!
อ่านตัวเลขและทำให้ฟอร์ดจำได้
Ford:You is the difference between a cat and I.
ดังที่คุณเห็น Engrish นั้นถูกต้องใน SPL สิ่งนี้ทำให้ค่าของ Puck "แตกต่างระหว่างแมวกับฉัน" แต่มันหมายความว่าอะไร? เป็นรูปธรรมในเชิงบวกจึงเป็น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.
ไม่อย่างนั้นมันก็แค่ "ไขมันอ้วนอ้วนอ้วนแมวอ้วน" ดังนั้นอาแจ็กซ์จึงได้ค่า 32 ซึ่งเป็น ASCII สำหรับพื้นที่
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
เพิ่มขึ้นทีละหน้าและ ส่วนที่เหลือของโปรแกรมใช้ส่วนประกอบเดียวกันดังนั้นนี่คือรุ่น pseudocode ที่อ่านได้มากขึ้น:
Scene1:
อินพุต = [หมายเลขอินพุต];
แถว = 0 - อินพุต + 1;
Scene2:
col = 0 - อินพุต + 1;
Scene3:
temp = row * col;
if (temp == 0) {
temp = '+';
}อื่น{
temp = '';
}
putchar (ชั่วคราว);
หน้า = หน้า + 1;
if (Page! = Ford) ไปที่ Scene3;
อาแจ็กซ์ = 10;
putchar (อาแจ็กซ์);
Puck = Puck + 1;
ถ้า (Puck! = Ford) ไปที่ Scene2;