(Ini adalah variasi pada Cetak Negatif Kode Anda , yang sangat saya nikmati! Terima kasih kepada Martin Büttner ♦ - hampir semua teks ini adalah miliknya.)
Mari kita anggap simbol - simbol tersebut sebagai karakter ASCII yang dapat dicetak berikut (perhatikan bahwa ada spasi yang disertakan):
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Dan alfanumerik menjadi ini:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Pertimbangkan persegi karakter ASCII yang dapat dicetak untuk panjang sisi N, seperti berikut:
ONE,
{two}
&3,+=
!four
f|ve.
Kami juga mengharuskan setiap baris dan setiap kolom mengandung setidaknya satu simbol dan satu alfanumerik. (Contoh di atas memuaskan ini.)
Kami mendefinisikan negatif simbolis dari persegi tersebut menjadi kuadrat dengan ukuran yang sama di mana setiap simbol diganti dengan alfanumerik dan sebaliknya. Misalnya, berikut ini akan menjadi negatif simbolis yang valid dari contoh di atas:
[&]OK
a...b
1/100
i@#$%
(R) z
Pilihan karakter tertentu tidak relevan selama mereka berada dalam kategori di atas.
Tantangan
Tugas Anda adalah menulis program dengan kode sumber kuadrat dengan panjang sisi N> 1, yang mencetak negatif simbolis dari kode sumbernya ke STDOUT. Ruang-ruang tambahan harus dicetak. Anda mungkin atau mungkin tidak mencetak satu baris baru.
Aturan quine yang biasa juga berlaku, jadi Anda tidak boleh membaca kode sumber Anda sendiri, secara langsung atau tidak langsung. Demikian juga, Anda tidak boleh menganggap lingkungan REPL yang secara otomatis mencetak nilai dari setiap ekspresi yang dimasukkan.
Pemenangnya adalah program dengan panjang sisi terendah N. Jika terjadi seri, pengajuan dengan simbol paling sedikit dalam kode sumber akan menang. Jika masih ada seri, jawaban paling awal menang.