Intro
Dalam kebanyakan font semua karakter alfabet huruf besar selain BDO
memiliki garis tunggal sekitar menyentuh beberapa empat sudut persegi panjang berlari karakter: ACEFGHIJKLMNPQRSTUVWXYZ
.
Misalnya, dua kaki A
"menyentuh" sudut kiri bawah dan kanan bawah karakter. Demikian juga, C
menyentuh sudut kanan atas dan bawahnya (agak melengkung tapi cukup dekat). L
hanya menyentuh sudut kiri atas dan kanan bawahnya dengan garis tunggal. Sudut kiri bawah L
adalah titik, bukan akhir dari satu baris.
Berikut adalah tabel karakter apa yang disentuh sudut mana sesuai dengan font Stack Exchange I (dan mudah-mudahan Anda) lihat. 1
untuk kiri atas, 2
untuk kanan atas, 3
kiri 4
bawah , kanan bawah.
A: 3 4
C: 2 4
E: 2 4
F: 2 3
G: 2
H: 1 2 3 4
I: 1 2 3 4
J: 1 3
K: 1 2 3 4
L: 1 4
M: 3 4
N: 2 3
P: 3
Q: 4
R: 3 4
S: 2 3
T: 1 2
U: 1 2
V: 1 2
W: 1 2
X: 1 2 3 4
Y: 1 2
Z: 1 4
Mempersiapkan
Berpura-pura seperti ini garis sentuhan sudut memanjang ke arah sudut yang mereka sentuh sehingga pengaturan karakter ini pada kotak dapat "terhubung".
Misalnya, semua karakter dalam
A
C X
terhubung karena kiri bawah A
dan kanan atas C
terhubung, dan kanan bawah A
dan kiri atas X
terhubung.
Namun,
CAX
tidak memiliki koneksi karena koneksi hanya terjadi secara diagonal dari satu karakter ke yang berikutnya .
Tantangan
Tuliskan program sesingkat mungkin (dalam byte) yang menampilkan semua karakter ACEFGHIJKLMNPQRSTUVWXYZ
dalam satu pohon besar yang sepenuhnya terhubung, sesuai dengan aturan di atas. Setiap karakter harus muncul tepat sekali. Gunakan spasi untuk ruang kosong.
Contoh
Segala sesuatu di pohon 23 huruf ini dapat dicapai dari apa pun melalui koneksi diagonal yang ditentukan di atas:
Q
A J R
C U S Y
I M N
E H X
F L T
G Z K P
V W
Catatan
- Anda dapat membuat hardcode solusi Anda.
- Output Anda hanya boleh berisi
ACEFGHIJKLMNPQRSTUVWXYZ
, spasi, dan baris baru.BDO
tidak akan digunakan. - Leading / trailing space baik-baik saja selama semua koneksi diposisikan dengan benar.
- Kisi keluaran tidak boleh lebih besar dari 30 kali 30 karakter (termasuk baris baru dan spasi).
- Hanya koneksi sudut yang dipertimbangkan. Bagian bawah
Y
tidak terhubung ke apa pun. Anda harus menggunakan koneksi sudut dari tabel di atas. - Tidak semua sudut yang terhubung harus terhubung ke sesuatu. Sudut yang terhubung dan tidak terhubung dapat saling membatasi.
- Output ke stdout. Tidak ada input.
- Termasuk grafik konektivitas yang dibuat dengan garis miring seperti yang dilakukan Peter Taylor adalah sentuhan yang membantu tetapi tidak diperlukan.
Pembaruan:
githubhagocyte telah membuat pemeriksa validitas pohon alfabet di Github .
sumber
Jawaban:
Pyth , 32
Keluaran:
Koneksi, terima kasih kepada pemeriksa @ githubphagocyte:
Menggabungkan trik byte nol @ grc dan sintaks Pyth yang sangat singkat. Membuat kisi saya sendiri untuk itu.
Penjelasan:
j
adalah string python bergabung.d
adalah ruang.\0
adalah urutan pelarian untuk byte nol. Ini adalah NOP saat dicetak, sehingga baris ketiga memiliki tepat dua ruang di depan. Juga, perhatikan bahwa string dapat diakhiri EOL dalam Pyth, serta diakhiri dengan kutipan.sumber
GolfScript (41 karakter)
Demo online
Grafik konektivitas:
sumber
Python, 49
Contoh:
Saya pikir itu terhubung dengan benar sekarang, tetapi saya mungkin telah melewatkan sesuatu lagi.
sumber
F4
terlihat terhubungG1
, yang tidak validMarbelous
164158143menggunakan pohon tanda ' karena hampir dioptimalkan dengan sempurna untuk Marbelous . Kode dalam hal ini hanyalah kode ascci untuk semua karakter (termasuk spasi dan baris baru) dari kiri ke kanan, dibatasi oleh spasi.
Keluaran:
Pendekatan Marbelous yang lebih baik
135129Ini menghasilkan pohon yang sama dengan satu ruang ekstra sebelum dan sesudah setiap baris, ia bekerja dengan memasukkan literal ke dalam subrutin yang mencetak spasi sebelum mencetak literal. Dan hanya mencetak spasi jika literalnya adalah spasi (20 HEX)
sumber
BrainF * ck 669
Membuat ini untuk terkikik. Output yang sama persis dengan contoh.
Akan memberikan solusi lain nanti.Tidak bisa memikirkan cara cerdas untuk melakukan ini di Lua jadi saya hanya akan tetap pada yang ini :)Keluaran
sumber
PHP 46
Ini lebih seperti pemecahan puzzle daripada pemrograman, jadi jawaban saya lebih seperti solusi puzzle daripada kode. Namun ini adalah program PHP yang valid, jadi saya mengirimkannya.
Perbarui yang sama di Perl. Panjangnya masih 46:
sumber
HTML, 55
kode
keluaran:
sumber
Bash + coreutils, 46
Sekarang meminjam pohon optimal @ core1024 tanpa malu-malu :
Keluaran:
sumber
STATA 63
Sunting: sekarang solusi saya sendiri. Seharusnya semua surat.
sumber
Javascript 83
Saya akan mulai dengan hardcoding solusi ANDA
sumber
alert
bukannyaconsole.log
PHP, 69
memberi
sumber
"/\w/",'\0 '