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]
Hãy thử trực tuyến!
Chỉnh sửa: làm cho câu trả lời tương thích với việc triển khai SPL chính thức - Tôi không thể làm cho nó hoạt động trước đây.
Đã đánh gôn 6 byte vì số cảnh không phải liên tiếp.
Giải thích :
SPL là một esolang được thiết kế để trông giống như vở kịch của Shakespeare. Danh từ tích cực có giá trị là 1 (ở đây mèo được sử dụng) và danh từ phủ định có giá trị -1 (không được sử dụng nhưng lợn là một trong số đó). Tính từ sửa đổi một hằng số bằng cách nhân nó với 2.
N.
Tất cả mọi thứ cho đến khi dấu chấm đầu tiên là tiêu đề và không quan trọng.
Puck,. row counter
Page,. column counter
Ford,. input
Ajax,. temp
Các ký tự là các biến số nguyên, mỗi biến cũng có một ngăn xếp nhưng tôi không cần sử dụng tính năng đó.
Act I:.
Scene I:.
Hành vi và cảnh được sử dụng làm nhãn goto
[Enter Puck and Ford]
Nó chỉ hữu ích nếu chính xác hai nhân vật ở trên sân khấu cùng một lúc.
Puck:Listen to thy heart!
Đọc một số và làm cho Ford nhớ nó.
Ford:You is the difference between a cat and I.
Như bạn có thể thấy Engrish có giá trị trong SPL. Điều này làm cho giá trị của Puck "khác biệt giữa một con mèo và tôi". Nhưng nó có nghĩa gì? cat
là một danh từ tích cực, vì vậy nó Puck = 1 - Ford
.
Scene II:.
[Exeunt]
Exe chỉ là một số nhiều của "lối ra", và không có đối số có nghĩa là tất cả mọi người trên sân khấu thoát ra.
[Enter Page and Ajax]
Ajax:You is the difference between a cat and Ford.
Nó cũng được Page = 1 - Ford
nhưng nó được nói bởi một diễn viên khác nên I
sẽ sai. Vì đó là một vòng lặp, tôi không thể chỉ sao chép giá trị của Puck
.
Scene III:.
Page:You is the product of Puck and I.
Khá đơn giản cho đến bây giờ. Ajax = Puck * Page
.
Is you as big as zero?
"as [adj] as" là ==
toán tử.
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.
Nếu Ajax == 0 ... "mèo" là 1, "mèo lớn" là 2, "mèo lớn" là 4, v.v. Sau khi thay thế các hằng số đơn giản, chúng ta nhận được "tổng của tổng của 32 và 8 và 2 và 1" -> "tổng của 40 và 2 và 1" -> "tổng của 42 và 1" -> "43", là ASCII cho +.
If not,you fat fat fat fat fat cat.
mặt khác, nó chỉ là "con mèo béo béo béo", vì vậy Ajax nhận được giá trị là 32, ASCII cho một khoảng trống.
Speak thy mind!
Đây là lệnh để xuất ra một nhân vật.
Ajax:
You sum you and cat.Is you as big as Ford?If not,let us return to Scene III.
Đây là một cấu trúc vòng lặp. Trang tăng "Bạn tổng hợp bạn và mèo" và if(Page != Ford) goto Scene III
. Phần còn lại của chương trình sử dụng các thành phần tương tự, vì vậy đây là phiên bản mã giả dễ đọc hơn:
Cảnh 1:
đầu vào = [số đầu vào];
hàng = 0 - đầu vào + 1;
Cảnh2:
col = 0 - đầu vào + 1;
Cảnh 3:
temp = hàng * col;
if (temp == 0) {
temp = '+';
} khác {
temp = '';
}
putar (temp);
Trang = Trang + 1;
if (Trang! = Ford) goto Cảnh3;
Ajax = 10;
putar (Ajax);
Puck = Puck + 1;
if (Puck! = Ford) goto Cảnh2;