Mari kita ambil kisi 16x16 karakter ASCII yang dapat dicetak (titik kode 0x20 hingga 0x7E). Ada 30-pilih-15 jalur dari kiri atas ke sudut kanan bawah, hanya membuat gerakan orthogonal, seperti contoh berikut:
##..............
.#..............
.######.........
......##........
.......##.......
........#.......
........#.......
........#.......
........###.....
..........###...
............#...
............####
...............#
...............#
...............#
Setiap jalur tersebut terdiri dari 31 karakter. Perhatikan bahwa masing-masing karakter tersebut berbeda dari 31 anti-diagonal:
0123456789ABCDEF
123456789ABCDEFG
23456789ABCDEFGH
3456789ABCDEFGHI
456789ABCDEFGHIJ
56789ABCDEFGHIJK
6789ABCDEFGHIJKL
789ABCDEFGHIJKLM
89ABCDEFGHIJKLMN
9ABCDEFGHIJKLMNO
ABCDEFGHIJKLMNOP
BCDEFGHIJKLMNOPQ
CDEFGHIJKLMNOPQR
DEFGHIJKLMNOPQRS
EFGHIJKLMNOPQRST
FGHIJKLMNOPQRSTU
Ini bukan contoh grid. Ini adalah visualisasi dari 31 anti-diagonal.
Kami akan menyebut grid unik secara diagonal jika tidak ada anti-diagonal yang berisi karakter yang sama dua kali. Jika kisi memiliki properti ini, tidak ada dua jalur yang akan berisi string yang sama. (Hanya untuk memperjelas, visualisasi itu sendiri pada dasarnya adalah kebalikan dari unik secara diagonal.)
Tantangan
Rancang kisi 16x16 yang unik secara diagonal, sehingga sebanyak mungkin jalur adalah kode yang valid yang mencetak Jabberwocky
ke STDOUT (dengan penghentian garis tambahan opsional) dalam bahasa sebanyak mungkin. Setiap kode dapat berupa program penuh, atau badan fungsi tanpa parameter tanpa pernyataan kembali (ini agar tidak menghalangi bahasa yang perlu memiliki kode mereka di beberapa fungsi boilerplate / class / namespace).
Catatan: Untuk kesederhanaan Anda dapat menggunakan beberapa karakter khusus untuk sel yang tidak digunakan seperti Ypnypn .
Untuk setiap jalur yang valid, harap sebutkan satu bahasa pemrograman yang valid.
Pemenangnya adalah kiriman dengan jumlah bahasa terbesar yang dicakup oleh daftar di atas. (Atau, untuk setiap bahasa yang ingin Anda hitung, perlihatkan satu jalur yang valid dalam bahasa itu, tetapi pastikan untuk tidak menghitung jalur apa pun untuk dua bahasa.)
Jika terjadi seri, hitung sel-sel kisi yang tidak tercakup oleh jalur yang valid. Lebih sedikit sel yang tidak digunakan menang. Jika masih ada ada seri, saya akan menerima jawabannya dengan suara terbanyak (bersih).
Skrip Validasi
Saya hanya dengan cepat mengumpulkan potongan CJam kecil yang dapat Anda gunakan untuk memvalidasi bahwa grid unik secara diagonal.
- Pergi ke penerjemah CJam online .
Tempel kode berikut
l:A; qN/W%A16**33/z{A-__|=}%:*"D""Not d"?"iagonally unique"
Di bidang input, letakkan karakter khusus Anda di baris pertama (gunakan karakter yang tidak digunakan jika Anda tidak menuntut karakter yang dipesan), dan kemudian kotak Anda di baris 2 hingga 17. Misalnya, untuk jawaban Ypnypn:
~ pr~~~~~~~~~~~~~ tin~~~~~~~~~~~~ ~ypt(~~~~~~~~~~~ ~~ef(~~~~~~~~~~~ ~~ "J~~~~~~~~~~ ~~~~~ab~~~~~~~~~ ~~~~~~be~~~~~~~~ ~~~~~~~rwo~~~~~~ ~~~~~~~~~ck~~~~~ ~~~~~~~~~~y~~~~~ ~~~~~~~~~~\n~~~~ ~~~~~~~~~~~")) ~ ~~~~~~~~~~~ ; ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
Lari.
Beri tahu saya jika menurut Anda ada bug.
sumber
Jawaban:
30 3335 BahasaKarakter yang dicadangkan:
~
Bahasa:
(Pyth dan CJam terima kasih kepada user23013)
sumber
putStr[ln]...
. Juga, haskell tidak punya;;
. Saya percaya Anda mencampurnya dengan Ocaml.;;
). Omong-omong, ganti Haskell dengan sesuatu yang lain.| p b"Jabberwocky" |
karya, misalnya17 bahasa
Inilah kisi-kisi, dengan
.
sebagai karakter yang dilindungi:Dan ini bahasa dan jalurnya (abaikan bilah vertikal):
Saya belum bisa menguji semuanya, jadi beri tahu saya jika ada yang tidak berhasil.
sumber
<?
sini18 bahasa dan lebih banyak lagi
Karakter Reserved:
~
.Bahasa:
dan...
Seharusnya ada lebih banyak dialek dasar yang berfungsi. Tapi saya belum punya waktu untuk menguji semuanya.
sumber
?
untukprint
) harus bekerja ... Cukup pilih nomor baris yang berbeda.