Ця маленька скарбничка пішла на ринок, ця маленька скарбничка написала якийсь код ...
Аж чекай, ми не говоримо про той бекон, ми говоримо про сера Френсіса Бекона! Зокрема, шифр Бекон винайшов у кінці 1500-х років як метод приховування повідомлення в іншому повідомленні, метод стеганографії .
Шифр працює, приховуючи повідомлення у поданні тексту, а не його зміст. По-перше, листи вашого повідомлення кодуються у двійкові (від 0 до 25) наступним чином:
Примітка. Будь ласка, використовуйте наступне кодування у своєму коді і не переживайте за цифри, пробіли та інші символи на вводі, хоча я можу створити певний бонус для тих, хто включає ці символи у їх кодування. Якщо ви включаєте інші символи, літери все ще повинні займати пробіли 0-25 у кодуванні.
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
Зашифрувавши всі букви у вашому повідомленні в A
s і B
s, ви повинні вибрати два шрифти для свого коду. У цьому прикладі я використовуватиму звичайний текст для шрифту A
та жирний текст для шрифту B
.
Отже повідомлення
HELLOWORLD
кодується до
AABBB AABAA ABABB ABABB ABBBA BABBA ABBBA BAAAB ABABB AAABB
А тепер ми приховуємо цей двійковий файл із текстом-носієм .
Швидка бура лиса стрибає над ледачими собаками, граючи на полях, де пастухи стежать.
Добре, якщо повідомлення-носій довше фактичного закодованого повідомлення, хоча воно не може бути коротшим. Тепер ми перетворюємо текст носія жирним шрифтом відповідно до місцяB
s знаходиться у кодованому повідомленні,
Че е Qu IC до братан ш п FO х J ¯u тр и Ов г т ч е л аз у робити г и , гама б про л я нг в т він полів , де пастухи тримають годинник.
Який без Маркдаун читається як
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.
Зауважте, що я не використовував розділові знаки в повідомленні перевізника для кодування повідомлення, але залежно від того, чи знаки пунктуації закодовані чи ні, залежить від вас /.
Правила
Вашим входом буде повідомлення, яке потрібно кодувати, та повідомлення оператора. Якщо повідомлення оператора занадто коротке, поверніть якесь повідомлення про помилку.
Ви повинні вибрати два шрифтами для кодування
A
іB
, наприклад, ВЕРХНІЙ, малими літерами, курсивом , жирним шрифтом , виділені жирним курсивом ,закреслений,in code format
і так далі. Ви повинні використовувати форму Markdown Stack Exchange для кодування цих типів шрифтів, тобтоUPPERCASE, lowercase, *italic*, **bold**, ***bold italic***, <s>strikethrough</s>, `in code format`
Вихід повинен бути кодованим зараз носієм повідомлення або показано з Markdown або показано без, як видно з вищевказаного прикладу.
Вам потрібно лише скласти алгоритм кодування. Будь-які алгоритми розшифровки, які ви хочете надати, вітаються, але під час написання не допоможуть або не перешкоджають оцінці.
Ваш код повинен бути програмою або функцією.
Це кодовий гольф, тому виграє найменша кількість байтів.
Як завжди, якщо проблема неясна, будь ласка, повідомте мене про це. Успіхів і хорошого гольфу!