Babi kecil ini pergi ke pasar, babi kecil ini menulis beberapa kode ...
Ah menunggu, kita tidak berbicara tentang itu bacon, kita sedang berbicara tentang Sir Francis Bacon! Secara khusus, Bacon sandi dirancang pada akhir 1500-an , sebagai metode menyembunyikan pesan dalam pesan lain, metode steganografi .
Cipher bekerja dengan menyembunyikan pesan dalam presentasi teks, bukan kontennya. Pertama, huruf-huruf pesan Anda dikodekan ke dalam biner (dari 0 hingga 25) sebagai berikut:
Catatan: Silakan gunakan pengkodean berikut dalam kode Anda dan jangan khawatir tentang angka, spasi, atau simbol lain dalam input, meskipun saya dapat menyusun beberapa bonus bagi mereka yang memasukkan karakter ini dalam pengkodean mereka. Jika Anda menyertakan simbol lain, huruf masih harus menempati spasi 0-25 dalam penyandian.
Letter Encoding
A AAAAA
B AAAAB
C AAABA
D AAABB
E AABAA
F AABAB
G AABBA
H AABBB
I ABAAA
J ABAAB
K ABABA
L ABABB
M ABBAA
N ABBAB
O ABBBA
P ABBBB
Q BAAAA
R BAAAB
S BAABA
T BAABB
U BABAA
V BABAB
W BABBA
X BABBB
Y BBAAA
Z BBAAB
Setelah menyandikan semua huruf dalam pesan Anda menjadi A
s dan B
s di atas, Anda sekarang harus memilih dua jenis huruf untuk kode Anda. Untuk contoh ini, saya akan menggunakan teks normal untuk jenis huruf A
dan teks tebal untuk jenis huruf B
.
Jadi pesannya
HELLOWORLD
dikodekan ke
AABBB AABAA ABABB ABABB ABBBA BABBA ABBBA BAAAB ABABB AAABB
Dan sekarang kita menyembunyikan biner ini dengan teks pembawa .
Rubah cokelat cepat melompati anjing-anjing malas, berjudi di ladang tempat para gembala berjaga-jaga.
Tidak apa-apa jika pesan operator lebih panjang dari pesan yang disandikan yang sebenarnya, meskipun tidak bisa lebih pendek. Sekarang kita mengubah teks pembawa menjadi tebal sesuai dengan di mana B
s dalam pesan yang disandikan,
Th e qu ic k bro w n fo x j u mp s ove r t h e l az y lakukan g s , gam b o l i ng di t dia ladang di mana para gembala terus menonton.
Yang tanpa Markdown dibaca sebagai
Th**e** **qu**ic**k** bro**w**n **fo**x **j**u**mp**s **ove**r **t**h**e** **l**az**y**
**do**g**s**, gam**b**o**l**i**ng** in t**he** fields where the shepherds keeps watch.
Perhatikan bahwa saya tidak menggunakan tanda baca dalam pesan operator untuk menyandikan pesan, tetapi apakah tanda baca itu disandikan atau tidak, terserah Anda /.
Aturan
Input Anda akan menjadi pesan Anda untuk dikodekan dan pesan operator. Jika pesan operator terlalu pendek, kembalikan semacam pesan kesalahan.
Anda harus memilih dua jenis huruf untuk penyandian
A
danB
, seperti UPPERCASE, huruf kecil, miring , tebal , miring tebal ,dicoret,in code format
dan sebagainya. Anda harus menggunakan bentuk penurunan harga dari Stack Exchange untuk mengkodekan jenis huruf ini, yaituUPPERCASE, lowercase, *italic*, **bold**, ***bold italic***, <s>strikethrough</s>, `in code format`
Output Anda harus berupa pesan operator yang sekarang disandikan, baik yang ditampilkan dengan penurunan harga atau ditampilkan tanpa, seperti terlihat pada contoh di atas.
Anda hanya perlu membuat algoritma penyandian. Algoritma pengodean ulang apa pun yang ingin Anda berikan dipersilakan, tetapi pada saat penulisan ini tidak akan membantu atau menghalangi skor Anda.
Kode Anda harus berupa program atau fungsi.
Ini adalah kode golf, sehingga jumlah byte terkecil menang.
Seperti biasa, jika masalahnya tidak jelas, beri tahu saya. Semoga berhasil dan bermain golf dengan baik!
sumber
Jawaban:
Pyth, 47 byte
Coba di sini .
Penjelasan:
sumber
Python 3,
216211231225207 byteIni adalah solusi yang menggunakan teks normal dan miring bergaya Markdown untuk dua tipenya. Dan itu mengkodekan semua yang ada di pesan operator kecuali spasi.Sunting: Harus memperbaiki kode sehingga hasilnya akan mencetak dengan benar dan menambahkan contoh di bawah kode.
Sunting: Mengedit kode untuk solusi huruf besar / huruf kecil yang sebelumnya buruk, karena masalah dalam mencetak miring dengan benar.
Contohnya
Tidak Disatukan:
sumber
C, 124 byte
Ini membutuhkan argumen untuk berada dalam pengkodean yang kompatibel dengan ASCII (misalnya ISO-8859.1 atau UTF-8). Ini memodifikasi operator di tempat, dan mengembalikan 0 pada keberhasilan, atau tidak nol sebaliknya. Pengkodean adalah
A
== huruf kecil danB
== huruf besar. Huruf operator yang tidak digunakan diatur ke atas.Penjelasan
Termasuk program pengujian. Lewati huruf untuk disandikan sebagai argumen pertama, dan string pembawa sebagai yang kedua.
Output tes:
sumber