Enkripsi Pigpen Cipher
Misi Anda sederhana: untuk menulis sebuah program yang menerima teks sebagai input dan menampilkan representasi ASCII di dalam Pigpen Cipher .
Memasukkan
Hanya karakter ASCII (tanpa Unicode). Anda harus dapat menangani setidaknya 16384 karakter dan 256 baris.
Keluaran
- Ganti semua karakter yang bukan baris baru atau dalam
ABCDEFGHIJKLMNOPQRSTUVWXYZ
atauabcdefghijklmnopqrstuvwxyz
dengan spasi. - Secara case-insensitive, gantilah setiap huruf dengan form terenkripsi (lihat bagian selanjutnya), masukkan spasi tambahan pada masing-masing dari tiga baris setelah masing-masing. Setiap karakter yang dikodekan adalah blok 3 * 3 seni ASCII. Ganti spasi dengan 3 * 3 blok ruang.
- Semua karakter harus berada di tiga baris yang sama (sebut tiga baris ini satu garis pigpen), kecuali ada baris baru, yang memulai garis pigpen baru. Biarkan garis normal kosong di antara garis pigpen.
Cipher
| | | |
.| |.| |.
--+ for J +-+ for K +-- for L
--+ +-+ +--
.| |.| |.
--+ for M +-+ for N +-- for O
--+ +-+ +--
.| |.| |.
| for P | | for Q | for R
(ABCDEFGHI are the same as JKLMNOPQR, but with the . replaced by a space)
\./
V for W (note the row of 3 spaces on the top)
^
/.\ for Z (note the 3 spaces on the bottom)
\
.>
/ for X (note the leading spaces)
/
<.
\ for Y (note extra trailing spaces)
(STUV are like WXYZ, but with the . replaced by a space)
Contoh
Input "hEllo, wORLd" harus menghasilkan:
+-+ +-+ | | +-- +-- +-- | --+
| | | | |. |. |. \./ |. |. |. |
| | +-+ +-- +-- +-- V +-- | +-- --+
Pengkodean base64 di atas, dengan garis baru yang tertinggal, ada di bawah. MD5sum adalah 6f8ff1fed0cca4dd0492f9728ea02e7b
.
Ky0rICstKyB8ICAgfCAgICstLSAgICAgICAgICstLSArLS0gfCAgIC0tKwp8IHwgfCB8IHwuICB8
LiAgfC4gICAgICBcLi8gfC4gIHwuICB8LiAgICB8CnwgfCArLSsgKy0tICstLSArLS0gICAgICBW
ICArLS0gfCAgICstLSAtLSsK
Tanpa garis trailing baru, md5sum adalah 581005bef7ee76e24c019d076d5b375f
dan base64 adalah:
Ky0rICstKyB8ICAgfCAgICstLSAgICAgICAgICstLSArLS0gfCAgIC0tKwp8IHwgfCB8IHwuICB8
LiAgfC4gICAgICBcLi8gfC4gIHwuICB8LiAgICB8CnwgfCArLSsgKy0tICstLSArLS0gICAgICBW ICArLS0gfCAgICstLSAtLSs =
Aturan
- Celah standar dilarang.
- Ini golf kode. Kode terpendek menang.
- Dalam bahasa yang tidak dapat menerima beberapa baris input sekaligus (mis. JavaScript dengan
prompt()
), gunakan*
(atau beberapa karakter lain) sebagai pemisah baris.
Erranda
- Contoh hilang beberapa spasi (spasi harus terdiri dari ruang trailing dari karakter sebelumnya, jika ada, itu sendiri, dan ruang trailing sendiri). Ini sekarang sudah diperbaiki.
prompt
digunakan untuk input, tetapi hanya menerima satu baris. Bisakah saya menggunakan karakter khusus (seperti '*') untuk menandai baris baru di input ?.