Tugasnya adalah tantangan quine yang agak sederhana dengan twist, Anda harus menampilkan kode sumber Anda dalam bentuk piramida. Bentuk piramida didefinisikan di bawah ini:
1
234
56789
ABCDEFG
HIJKLMNOP
QRSTUVWXYZa
bcdefghijklmn
......etc......
Keterbatasan utama dari tantangan ini adalah bahwa quine Anda harus mengandung byte yang cukup tepat agar tidak menghalangi pola piramida. Misalnya, panjang program berikut akan berfungsi:
1-byter: 1st layer of the pyramid (not allowed by definition of a quine).
4-byter: 1st and 2nd layers of the pyramid.
9-byter: 1st, 2nd and 3rd layers of the pyramid.
etc...
Jadi, jika program Anda adalah:
QWERTY
Itu tidak akan valid, karena akan mengatur seperti:
Q
WER
TY
Namun, jika program Anda adalah QWERTYUIO, tidak masalah:
Q
WER
TYUIO
Aturan
- Kelonggaran standar jelas-jelas dilarang, tidak membaca sumber Anda sendiri.
- Piramida harus dipusatkan, karakter tambahan diperbolehkan, tetapi tidak diperlukan.
- Juga, karakter apa pun dapat digunakan untuk memusatkan piramida, tidak harus demikian
(char)32
.
- Juga, karakter apa pun dapat digunakan untuk memusatkan piramida, tidak harus demikian
- Quine Anda harus dapat dibentuk menjadi piramida.
- Itu harus mempertahankan pemesanan asli kode sumber Anda.
- Kode sumber Anda TIDAK boleh berisi karakter yang digunakan untuk memformat piramida.
- EG jika kode sumber Anda mengandung spasi, Anda perlu char lain untuk formatnya.
- Anda dapat menggunakan komentar di quine Anda untuk "pad" ke ukuran yang benar.
- Jelas, ini harus menjadi output sebagai bagian dari quine.
- Jika program berisi baris baru / tab, mereka bukan bagian dari quine dan harus dihilangkan dalam output.
- Bentuknya dihitung dalam karakter, bukan byte; jika bentuknya salah Anda tidak melakukannya dengan benar.
Skor serendah mungkin di sini adalah 4.
code-golf
ascii-art
restricted-source
quine
Guci Gurita Ajaib
sumber
sumber
Jawaban:
05AB1E , 36 byte
Cobalah online!
Jika
trailing characters are allowed
juga berarti pada akhir output,0"D34çýā·<£.c"D34çýā·<£.c
adalah lapisan yang lebih pendek pada 25 byte.sumber
34ç
adalah dasar dari semua quines 05AB1E, bukankah haha? Juga, tidak yakin apa yang saya rasakan tentang jumlah acak dari trailing newlines ... Saya lebih suka orang lain untuk melakukan panggilan itu (apa normanya, 1 trailing / preceeding diperbolehkan?) Yang tampaknya super on-the-edge.ā·<
saya menggunakan9ÅÉ
(dalam byter 25, tidak memikirkan tentang baris baru ..)Java 11,
324256227 byte-29 byte berkat @ JoKing .
Keluaran dengan spasi terdepan untuk membuat segitiga. (Perhatikan bahwa spasi putih antara
var s
danint i
adalah tab, bukan spasi.)Cobalah online.
Penjelasan:
quine -part :
var s
berisi String kode sumber yang tidak diformat%s
digunakan untuk menempatkan String ini ke dalam dirinya dengans.format(...)
%c
,%1$c
dan34
digunakan untuk memformat tanda kutip ganda ("
)%%
digunakan untuk memformat%
s.format(s,34,s)
menempatkan semuanya bersama-samaBagian tantangan:
Yang berhenti dengan
java.lang.StringIndexOutOfBoundsException: begin 225, end 256, length 226
kesalahan untukString#substring(int,int)
metode ini, iterasi setelah itu mencetak hasilnya ( yang baik-baik saja sesuai dengan meta ).sumber
s=s.format
berpisah ketika Anda dapat memiliki format dalam loop sebagai gantinya%%
dalam string dan hanya satu%
dalam kode aktual, tetapi ini berarti komentar wajib///
di dalam string sehingga string cukup lama untuk pergi ke iterasi yang diharapkan untuk mencetak semuanya, sebelum berhenti denganStringIndexOutOfBoundsException
untuk.substring
. Dan dengan hanya dua trailing//
di akhir program yang sebenarnya, karena hanya mencetak dua trailing//
juga. :)Python 2 , 81 byte
Cobalah online!
Quine quine yang menggunakan spasi sebagai karakter pengisi.
sumber
;)
Perl 6 , 67 byte
Cobalah online!
Saya menggunakan beberapa karakter unicode untuk memeras lapisan tambahan itu. Output menggunakan spasi:
Penjelasan:
sumber
Python 2 , 169 byte
Penggunaan
0
untuk memformat piramida.Cobalah online!
Python 2 , 147 byte
Ini menggunakan aturan Jika program berisi baris baru / tab, mereka bukan bagian dari quine dan harus dihilangkan dalam output.
Cobalah online!
sumber
Gol> <> , 36 byte
Cobalah online!
versi yang lebih muda, 36 byte
Saya merasa sangat dekat untuk mendapatkannya satu baris lebih pendek, grrrr ....
Cobalah online!
versi yang lebih muda, 36 byte
Kode yang satu ini lebih kecil, tetapi sayangnya masih keluar dengan jumlah yang sama, komentar mengambil sisa ruang.
Cobalah online!
versi yang sedikit lebih muda, 36 byte
Wowza! Heh, saya hanya menggunakan itu untuk mengisi beberapa ruang, tetapi program ini berfungsi, untuk mengurangi, saya menggunakan beberapa nilai prepushed daripada menggunakan variabel!
Cobalah online!
Versi lebih lama, 42 byte
Ini memiliki baris baru, dan memiliki lebih banyak karakter daripada yang saya inginkan ...
Saya akan bermain golf ini dengan sangat ...
Cobalah online!
sumber
Bersih , 256 byte
Cobalah online!
Cukup banyak quine standar, juga quine template, dengan fungsi format ditambahkan.
sumber
R ,
169144 byteCobalah online!
Berhasil mempersingkat dengan memindahkan ke string yang diurai daripada ekspresi yang pergi. Harus menggunakan redefinisi operator unary untuk mendapatkannya di bawah 144 sekalipun.
sumber
C # (Visual C # Interactive Compiler) , 225 byte
Menggunakan
STX
arang sebagai pelapis. Tidak menyadari bahwa Kevin Cruijssen sudah mengirimkan salinan persis di java sebelum memposting sampai saya selesai, tapi saya memutuskan untuk memposting ini lagi.Cobalah online!
sumber