Dan tidak, ini bukan duplikat dari teks Terjemahan ASCII ke braille .
Ada 2 8 = 256 pola Braille di Unicode. (Dengan 'Braille' maksud saya yang 8-sel)
T, tunggu. Berapa banyak karakter ASCII yang ada di sana?
2 7 = 128?
Baiklah, mari kita ubah ASCII menjadi Braille, karena sama sekali tidak ada alasan untuk tidak melakukannya!
Mulai dari ASCII, hingga Braille
Kita dapat melihat masing-masing sel mewakili sedikit, yang mana setiap sel 'dilubangi' atau tidak.
Sekarang kita dapat mengalokasikan setiap sel untuk mewakili bit dari karakter ASCII sebagai biner.
(1 )(16 )
(2 )(32 )
(4 )(64 )
(8 )( - )
* ( - )
kosong
Sekarang kita dapat mengonversi ASCII ke Braille. Misalnya, A
(65 = 01000001) sama dengan ⠡
.
Contohnya
Input -> Output
Braille! -> ⠢⠺⠱⡱⡴⡴⠵⠑
(Upscaled)
.. .o o. o. .. .. o. o.
o. oo .o .o .o .o .o .o
.o .o .o .o oo oo oo ..
.. .. .. o. o. o. .. ..
a
ini⠱
, tidak⠹
(yang saya pikirq
)?a
benar⠱
.⠹
akan salah juga, karena memiliki jumlah sel yang salah.Jawaban:
CJam ,
2726 byteCobalah online!
Penjelasan
Poin kode Braille disusun dengan rapi sehingga masing-masing titik dihitung dalam biner. Namun, urutan bit dalam poin kode berbeda. Kami ingin pesanan berikut:
Sedangkan karakter diletakkan dalam Unicode dalam urutan ini:
(Yang agak masuk akal, karena secara historis, Braille hanya menggunakan enam titik pertama.) Perhatikan bahwa kita tidak memerlukan
7
titik, karena input dijamin berada dalam kisaran ASCII. Jadi diberi daftar bit[6 5 4 3 2 1 0]
karakter input, kami ingin menyusun ulang[3 6 5 4 2 1 0]
, untuk menarik bit yang mewakili titik kiri bawah ke posisi paling signifikan.sumber
80
.JavaScript (ES6), 83 byte
sumber
Python 3 ,
987166 byteCobalah online!
sumber
CJam , 27 byte
1 byte dicuri dari Neil.
Cobalah online!
Penjelasan
Ini menggunakan ide dasar yang sama dengan jawaban CJam saya yang lain tetapi menggunakan aritmatika bitwise alih-alih konversi basis dan manipulasi daftar untuk menyusun ulang bit.
sumber
PHP, 109 Bytes
Versi Online
sumber
Mathematica 100 Bytes
Tidak Disatukan:
+60 byte ini terikat dalam nama fungsi yang panjang.
sumber
Jelly , 21 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Retina , 59 byte
Cobalah online! Hex dump:
sumber
C #, 63 byte
Cobalah online!
Inspirasi dari @ovs dan @Neil
sumber
Chip ,
6259 byteCobalah online!
Saya kira saya bisa bermain golf lebih banyak, hanya harus mencari tahu bagaimana ...
Chip membaca dalam setiap byte input sebagai kumpulan bit, disebut oleh delapan huruf pertama dari alfabet (huruf besar adalah input, lebih rendah adalah output):
Kita hanya perlu memetakan bit-bit input ke tiga byte output berikut:
Setengah bagian atas kode melakukan semua urutan, dan menghasilkan dua byte pertama, bagian bawah menghasilkan byte ketiga.
Karena spesifikasinya hanya membutuhkan penanganan 7 bit untuk ASCII, kami tidak memeriksa
H
. Untuk memasukkan bit kedelapan, ubah barisB/b
keB/b/H
.sumber