Questo porcellino è andato sul mercato, questo porcellino ha scritto del codice ...
Ah aspetta, non stiamo parlando di quella pancetta, stiamo parlando di Sir Francis Bacon! In particolare, la cifra Bacon ideata alla fine del 1500 , come metodo per nascondere un messaggio all'interno di un altro messaggio, un metodo di steganografia .
La cifra funziona nascondendo il messaggio nella presentazione del testo, piuttosto che nel suo contenuto. Innanzitutto, le lettere del tuo messaggio sono codificate in binario (da 0 a 25) come segue:
Nota: utilizzare la seguente codifica nel codice e non preoccuparsi di numeri, spazi o altri simboli nell'input, anche se potrei escogitare qualche bonus per coloro che includono questi caratteri nella loro codifica. Se includi altri simboli, le lettere devono comunque occupare gli spazi da 0 a 25 nella codifica.
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
Dopo aver codificato tutte le lettere del tuo messaggio nelle A
s e B
s precedenti, ora devi selezionare due caratteri tipografici per il tuo codice. Per questo esempio, userò il testo normale per il carattere tipografico A
e il testo in grassetto per il carattere tipografico B
.
Quindi il messaggio
HELLOWORLD
è codificato in
AABBB AABAA ABABB ABABB ABBBA BABBA ABBBA BAAAB ABABB AAABB
E ora nascondiamo questo file binario con un testo di supporto .
La rapida volpe marrone salta sui cani pigri, giocando d'azzardo nei campi dove i pastori vegliano.
Va bene se il messaggio del corriere è più lungo del messaggio effettivamente codificato, anche se non può essere più breve. Ora trasformiamo il testo del corriere in grassetto in base a dove si trovano le B
s nel messaggio codificato,
Th e qu ic k bro w n fo x j u mp s ove r t h e l az y fare g s , gam b o l i ng in t ha campi in cui i pastori mantiene orologio.
Che senza Markdown si legge come
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.
Nota che non ho usato la punteggiatura nel messaggio del corriere per codificare il messaggio, ma se la punteggiatura è codificata o meno dipende da te /.
Regole
Il tuo input sarà il messaggio da codificare e un messaggio di operatore. Se il messaggio del corriere è troppo breve, restituisce una sorta di messaggio di errore.
È necessario selezionare due tipi di carattere per la codifica
A
eB
, come ad esempio lettere maiuscole, minuscole, corsivo , grassetto , corsivo grassetto ,barrato,in code format
e così via. È necessario utilizzare la forma di Markdown di Stack Exchange per codificare questi caratteri tipografici, ad esUPPERCASE, lowercase, *italic*, **bold**, ***bold italic***, <s>strikethrough</s>, `in code format`
L'output deve essere il messaggio del corriere ora codificato, mostrato con Markdown o mostrato senza, come mostrato nell'esempio sopra.
Ti viene richiesto solo di creare un algoritmo di codifica. Tutti gli algoritmi di decodifica che desideri fornire sono i benvenuti, ma al momento della stesura non aiuteranno o ostacoleranno il tuo punteggio.
Il tuo codice deve essere un programma o una funzione.
Questo è il codice golf, quindi vince il minor numero di byte.
Come sempre, se il problema non è chiaro, per favore fatemi sapere. Buona fortuna e buon golf!