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]
Cobalah online!
Sunting: membuat jawaban itu kompatibel dengan implementasi SPL resmi - saya tidak bisa membuatnya bekerja sebelumnya.
Golf 6 byte karena nomor adegan tidak harus berturut-turut.
Penjelasan :
SPL adalah esolang yang dirancang agar terlihat seperti drama Shakespeare. Kata benda positif memiliki nilai 1 (di sini kucing digunakan) dan kata benda negatif memiliki nilai -1 (tidak ada yang digunakan tetapi babi adalah salah satunya). Kata sifat memodifikasi konstanta dengan mengalikannya dengan 2.
N.
Semuanya sampai titik pertama adalah judul dan tidak masalah.
Puck,. row counter
Page,. column counter
Ford,. input
Ajax,. temp
Karakter adalah variabel integer, masing-masingnya juga memiliki tumpukan tetapi saya tidak perlu menggunakan fitur itu.
Act I:.
Scene I:.
Kisah dan adegan digunakan sebagai label goto
[Enter Puck and Ford]
Ini hanya berguna jika tepat dua karakter berada di atas panggung pada saat yang sama.
Puck:Listen to thy heart!
Membaca angka dan membuat Ford mengingatnya.
Ford:You is the difference between a cat and I.
Seperti yang Anda lihat, Engrish valid di SPL. Ini membuat nilai Puck "berbeda antara kucing dan aku". Tapi apa artinya itu? cat
adalah kata benda positif, jadi itu Puck = 1 - Ford
.
Scene II:.
[Exeunt]
Exeunt hanyalah sejumlah "keluar", dan tanpa argumen berarti bahwa semua orang di panggung keluar.
[Enter Page and Ajax]
Ajax:You is the difference between a cat and Ford.
Itu juga Page = 1 - Ford
tetapi itu diucapkan oleh aktor yang berbeda sehingga I
akan salah. Karena ini adalah loop, saya tidak bisa hanya menyalin nilai Puck
.
Scene III:.
Page:You is the product of Puck and I.
Cukup mudah sekarang. Ajax = Puck * Page
.
Is you as big as zero?
"as [adj] as" adalah ==
operator.
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.
Jika Ajax == 0 ... "kucing" adalah 1, "kucing besar" adalah 2, "kucing besar besar" adalah 4 dan seterusnya. Setelah mengganti konstanta sederhana kita mendapatkan "jumlah dari jumlah dari jumlah 32 dan 8 dan 2 dan 1" -> "jumlah dari jumlah 40 dan 2 dan 1" -> "jumlah dari 42 dan 1" -> "43", yang merupakan ASCII untuk +.
If not,you fat fat fat fat fat cat.
selain itu hanya "fat fat fat fat fat", jadi Ajax mendapat nilai 32, ASCII untuk sebuah space.
Speak thy mind!
Ini adalah perintah untuk menghasilkan karakter.
Ajax:
You sum you and cat.Is you as big as Ford?If not,let us return to Scene III.
Ini adalah konstruksi lingkaran. "Kau jumlah anda dan kucing" increment Page, dan if(Page != Ford) goto Scene III
. Program lainnya menggunakan komponen yang sama, jadi di sini adalah versi pseudocode yang lebih mudah dibaca:
Scene1:
input = [nomor input];
baris = 0 - input + 1;
Scene2:
col = 0 - input + 1;
Scene3:
temp = baris * col;
if (temp == 0) {
temp = '+';
}lain{
temp = '';
}
putchar (temp);
Halaman = Halaman + 1;
if (Page! = Ford) goto Scene3;
Ajax = 10;
putchar (Ajax);
Keping = Keping + 1;
if (Puck! = Ford) goto Scene2;