Tidakkah Anda menemukan bahwa membaca teks sederhana tidak cukup menarik? Coba kami
##### ### ### ##### ##### ##### ##### # # ##### #
# # # # # # # # # # # # #
##### ### # # # # #### # # #
# # # # # # # # # # # #
# # ### ### ##### ##### # ##### # # # #
Jauh lebih mewah bukan? Tetapi cukup lama untuk menulis dengan tangan, akan luar biasa jika seseorang melakukan program yang melakukannya untuk saya!
Tugas Anda , jika Anda secara sukarela membantu saya, adalah menulis sebuah program atau fungsi yang [a-zA-Z\s\n]
hanya berisi string , dan menampilkan (atau mengembalikan) penulisan ascii itu!
Anda harus menggunakan alfabet berikut untuk memformat output Anda:
##### #### ### #### ##### ##### ### # # ##### ##### # # # # #
# # # # # # # # # # # # # # # # # # ## ##
##### #### # # # #### #### # ## ##### # # ### # # # #
# # # # # # # # # # # # # # # # # # # # # #
# # #### ### #### ##### # ### # # ##### ### # # ##### # #
# # ### #### ### #### ### ##### # # # # # # # # # # #####
## # # # # # # # # # # # # # # # # # # # # # #
# # # # # #### # # #### ### # # # # # # # # # # #
# ## # # # # ## ## # # # # # # ## ## # # # #
# # ### # #### # # ### # ### # # # # # # #####
Ruang angkasa:
|
| it's a 5x5 square of spaces
| but had to pad it with |s to make it appear in this post
|
|
Karena ini adalah font dengan lebar tetap, karakter spasi juga dikelilingi oleh spasi, menghasilkan spasi 7-lebar antara dua huruf.
a b
1234567 -- these numbers are just for the example, you don't have to output them
##### ####
# # # #
##### ####
# # # #
# # ####
a b
1234567890123
##### ####
# # # #
##### ####
# # # #
# # ####
Ketika Anda menemukan baris baru, seperti pada input
ascii
text
Pastikan untuk memisahkan dua blok teks dengan setidaknya satu baris kosong
##### ### ### ##### #####
# # # # # # #
##### ### # # #
# # # # # # #
# # ### ### ##### #####
##### ##### # # #####
# # # # #
# #### # #
# # # # #
# ##### # # #
Selain itu, Anda diizinkan untuk mengganti #
huruf s dengan karakter lain apa pun asalkan berada dalam rentang ASCII yang dapat dicetak, dan bukan spasi. Misalnya, Anda dapat menggunakan A
s untuk huruf A, B
untuk huruf B dan sebagainya.
Karena ini adalah kode-golf (dan juga kompleksitas-kolmogorov ) pengajuan yang menang akan menjadi salah satu yang menyelesaikan tantangan ini dalam byte sekecil mungkin, bersenang-senang!
sumber
Jawaban:
Python 3, 375 byte
Lihat kode ini berjalan di ideone.com.
Kode yang sama, tetapi entah bagaimana menjorok ke dalam, diformat dan berkomentar:
Saya juga memutuskan untuk pergi untuk pengkodean basis 36 karena itu adalah basis bawaan tertinggi Python yang
int()
secara bawaan mendukung. Berikut ini adalah skrip Python 3 pendek yang saya tulis (ungolfed) yang mengubah definisi font seperti pada pertanyaan menjadi kode 36 dasar: Konverter saya di ideone.comHasilnya terdiri dari karakter
1
sebagai piksel yang diaktifkan dan spasisebagai piksel yang dinonaktifkan. Berikut ini contoh tunggal proses:
Input (jeda baris sebagai
\n
):Keluaran:
sumber
Clojure, 552 byte
Setiap huruf di ascii direpresentasikan sebagai string biner dengan # - 1, spasi - 0. Kemudian dikonversi ke basis 36 sehingga hanya dibutuhkan 5 karakter untuk menyimpan + ":" untuk membuat Clojure tahu bahwa itu harus diperlakukan sebagai simbol. Kemudian input dibagi dengan simbol baris baru dan untuk setiap baris kita mengonversi sebuah huruf dalam basis 36 kembali ke basis biner dan mendapatkan simbol [0: 5] pertama menambahkan simbol baris baru, dapatkan simbol [5:10] berikutnya dan seterusnya.
Anda dapat melihatnya berjalan di sini - https://ideone.com/y99ST5
sumber
SOGL , 137 byte (tidak bersaing)
Penjelasan:
Catatan: saat ini bahasa ini tidak dapat benar-benar menerima string input multiline jadi saya membuatnya meminta nomor dan membaca x baris berikutnya sebagai input.
String pertama adalah
dikompresi menggunakan kamus khusus yang menggunakan "" dan "-" (kompresi memiliki mode khusus dengan "\ n - | / _" tersedia sehingga lebih banyak kompresi!)
Ini berisi 25 karakter per karakter dalam urutan alfabet. mereka dipesan dari atas ke bawah lalu ke kanan.
seperti karakter chars
dan itu sama dengan itu
┼
menambahkannya ke sebuah array.sumber
foo\nbar
input multilinePowershell,
261253 byteSkrip uji:
Keluaran:
catatan:
$s|% *per|% t*y
adalah jalan pintas untuk$s|% toUpper|% toCharArray
Tentang ruang:
Untuk setiap karakter string sumber, skrip mengambil simbol (bit mask) dari string ajaib
'_ONO__NQ...'
. Namun, indeks melampaui string ajaib untuk spasi. Dalam hal ini, bit mask$c
menjadi kosong. Itu berarti nol untuk semua bit.Tentang baris kosong:
Script menampilkan 6 baris untuk setiap simbol, bukan 5. Indeks juga melampaui string ajaib untuk baris kosong. Jadi, baris 6 hanya berisi spasi.
Paling baik dilihat jika Anda mencetak karakter lain alih-alih spasi. Sebagai contoh
·
.sumber
C (gcc) , 326 byte
Tusukan pertama. Harus menyertakan stdio.h dan string.h di TIO, tetapi tidak diperlukan dengan MinGW.
Cobalah online!
sumber
JavaScript (ES6),
292287278 byteDemo
Tampilkan cuplikan kode
sumber