Ini temanku Thomas. Dia setengah pohon, setengah emoticon.
| |
| :D |
| |
Dia kesepian. Mari kita buat dia menjadi teman!
Mengingat emoticon berbasis teks sebagai input (misalnya ಠ_ಠ
, :P
, >_>
, tidak 😀
, 🤓
atau 🐦
), output yang sesuai treemote.
Panjang treemote adalah berapa banyak karakternya lon (pada dasarnya fungsi built-in untuk string). Jadi ಠ_ಠ
memiliki panjang 3.
Sintaks untuk treemote panjang n
adalah sebagai berikut:
|< 2+n spaces>| * ceil(n/2)
| <emote> | (note the spaces)
|< 2+n spaces>| * ceil(n/2)
Jadi setiap treemote dengan panjang 3 akan terlihat seperti:
| |
| |
| ಠ_ಠ |
| |
| |
Dia memiliki ceil(n/2)
segmen trunk yang dipisahkan baris baru di kedua sisi, masing-masing dengan 2 + n
spasi di dalam.
Tantangan: Dengan adanya emotikon berbasis teks, tampilkan treemote yang sesuai.
Aturan lainnya:
- Ini adalah kode-golf , yang berarti saya ingin Anda menulis kode pendek.
- Celah standar tidak diijinkan.
- Anda harus mendukung karakter non-ascii kecuali bahasa Anda tidak bisa menanganinya.
Kasus uji:
^_^
| |
| |
| ^_^ |
| |
| |
\o/
| |
| |
| \o/ |
| |
| |
(✿◠‿◠)
| |
| |
| |
| (✿◠‿◠) |
| |
| |
| |
D:
| |
| D: |
| |
( ͡° ͜ʖ ͡°)
| |
| |
| |
| |
| |
| |
| ( ͡° ͜ʖ ͡°) |
| |
| |
| |
| |
| |
| |
ಠ_ಠ
test case.Jawaban:
05AB1E ,
2725 byteKode:
Penjelasan:
Menggunakan pengodean CP-1252 . Cobalah online! .
sumber
( ͡° ͜ʖ ͡°)
menghasilkan hasil yang lucu.( ͡° ͜ʖ ͡°)
itu sendiri adalah 11 karakter, tapi terlihat 8 karakter.Python 3.5,
767573 byte:( Terima kasih kepada Blue untuk tip yang menghemat 2 byte! )
Cobalah secara Online! (Ideone)
Juga, ini adalah versi 2.7.5 Python yang tidak bersaing karena jauh lebih lama pada 87 byte .
Ini karena pengkodean default Python 2 adalah
ascii
, dan karena itu, karakter seperti diಠ
luar 128 unicode point range dihitung lebih dari 1 byte (list('ಠ')
menghasilkan['\xe0', '\xb2', '\xa0']
). Satu-satunya solusi yang dapat saya pikirkan untuk ini adalah pertama-tama mendekode penggunaan inpututf-8
, dan kemudian melanjutkan denganutf-8
string yang diterjemahkan ini .Coba Versi Python 2 Ini Daring! (Ideone)
sumber
/
di//
untuk melakukan ceil divisi.Dyalog APL ,
373433 bytePengguna Chrome: Lihat catatan kaki *
Uji kasus
* Chrome salah menampilkan dua karakter
≢⍵
(U + 2262, U + 2375) sebagai≢⍵
(U + 2261, U + 0338, U + 2375) alih-alih sebagai̸≡⍵
(U + 0338, U + 2262, U + 2375), jadi di sini ada versi tampilan untuk Chrome:{↑'|'{⍺⍵⍺}¨b,(⊂⍵),b←' '/⍨⌈0.5×̸̸≡⍵}
sumber
{⍺⍵⍺}¨b
adalah "APL programmer pada cangkir kopi kelima memberi jempol" emoticon.V,
6057 byteSayangnya, V tidak memiliki apa-apa dalam hal operasi matematika. Fungsi membagi dan ceil secara drastis meningkatkan jumlah byte.
Karena ini mengandung banyak unsintables jahat, berikut adalah hexdump yang dapat dibalik:
Penjelasan:
sumber
Vitsy, 43 byte
Penjelasan:
Cobalah online!
Perhatikan bahwa, karena bug di TIO, input dengan karakter unicode tidak akan berfungsi. Anda harus menggunakan versi lokal sebagai gantinya.Terima kasih, @Dennis!sumber
Pyke, 31 byte
Coba di sini!
Terima kasih @ R.Kap karena telah menyimpan byte dengan trik pembagian lantai
sumber
Ruby, 57 byte
Menggunakan trik bilangan bulat integer dan memanfaatkan keunikan dalam
puts
fungsi Ruby .sumber
JavaScript ES6,
8378 bytesumber
f=
, itu menghemat 2 byte. Simpan 2 byte lagi dengan bergerake
di dalam template dan dia
luar. Simpan 2 byte lagi dengan menyisipkan spasi alih-alih menambahkan 2 pada pengulangan. Simpan sekelompok byte lain dengan menggunakan bit shifting untuk membagi dengan 2.> <> , 103 byte
Cobalah online!
Solusi ini didasarkan pada pengamatan bahwa setiap garis terdiri dari
| <x> |
, di mana<x>
pola di garis tengah, dan jumlah ruang yang sama di garis lainnya.Setelah membaca input (panjang
n
) dari STDIN, program mendorongn*(n+(n%2))
spasi. Tumpukan kemudian digulung setengah kali. Selanjutnya, semuan
karakter kecuali ditarik ke tumpukan baru, meninggalkan tumpukan tumpukan yang terdiri darin
spasi atau pola itu sendiri (hanya di tumpukan tengah). Pada langkah output, isi tumpukan saat ini dicetak, dikelilingi oleh|
dan|
.sumber
C, 89 byte
Tidak yakin apakah itu akan menangani emotikon non-ascii ....
sumber
strlen
menghitung byte hingga nol byte pertama dan sebagai hasilnya emotikon non-ascii dianggap jauh lebih luas daripada yang sebenarnya.PowerShell v3 +, 72 byte
Mengambil string input
$a
. Dibangun$b
sebagai (string ujung pipa yang kosong (dengan$a.length
spasi di tengah) dan baris baru yang tertinggal) diulangi (panjang + 1 bergeser ke kanan sedikit, yaitu, dibagi dua dan langit-langit) kali. Kemudian mengeluarkan salinan$b
, string input dengan pipa sendiri, dan akhirnya salinan$b
lagi.Membutuhkan v3 + untuk
-shr
operator bit-shift .Contohnya
sumber
Pyth, 30 byte
Saya terkejut bahwa tugas semudah itu tidak dilaksanakan di Pyth.
Cobalah online!
sumber
TSQL,
9688 byteCoba online!
sumber