Lecture du texte de la police millitext
Il y a ici une police qui adapte chaque caractère à un seul bloc de 1x5 pixels. Pour ce faire (en supposant que vous utilisiez un écran LCD), utilisez les canaux RVB de chaque pixel pour développer le pixel en trois sous-colonnes, une pour chaque canal. Votre tâche consiste à récupérer une chaîne de texte codée dans cette police et à la "décoder".
Alphabet Millitext
CHARACTER: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ENCODING: WYWBMRRMMMWYWYWWWMWBMRMYGYGYCWMMMMMW
MGBWMRRMMMMMRMRRRMGBMRWMMMMMRGMMMMMB
MGWWWWWBWWWYRMWWMWGBYRWMMYMYGGMMWGGG
MGRBBBMBMBMMRMRRMMGBMRMMMRWMBGMCWMGR
WWWWBWWBWWMYWYWRWMWWMWMMGRCMYGWBMMGW
J'ai abrégé chaque couleur en un symbole d'un caractère (R = rouge, G = vert, B = bleu, C = cyan, Y = jaune, M = magenta, W = blanc).
Format d'entrée
Le format d'entrée pour cela est assez ouvert. Vous pouvez avoir l’entrée sous la forme d’un tableau contenant chaque colonne, d’un tableau contenant chaque ligne, d’un char[][]
élément ou d’un élément similaire. Vous pouvez également choisir d'utiliser les mots entiers "rouge", "vert", "bleu", avec des majuscules / minuscules de votre choix (mais cela doit être cohérent pour chaque mot! Vous ne pouvez pas utiliser "ROUGE", mais aussi "vert" ou "bleu").
Si votre langue le prend en charge, vous pouvez également avoir des couleurs d'entrée (toutefois, cela peut fonctionner, je ne sais pas tout de suite).
Vous pouvez supposer que l'entrée contiendra UNIQUEMENT des caractères codés dans l'alphabet ci-dessus (en particulier, il n'y aura pas d'espaces ni de ponctuation dans votre sortie).
Format de sortie
Vous pouvez générer une chaîne ou une sorte de tableau de caractères. Vous pouvez choisir si les lettres sont majuscules ou minuscules, mais elles doivent toutes avoir la même casse.
Exemple
MWRRGMGYRY
MRRRMMMMRM
WWRRMWMYRM -> HELLOWORLD
MRRRMWMMRM
MWWWGMGMWY
Règles
C'est du code-golf , alors la réponse la plus courte gagne!
Ensemble d'essai
WMWGMWWMYYGMYWGMBMMYWYGMWYWMWRWWMYGW
GMRMMGRMMMMMMRMMBMWMRMMMRMGMRRMBMMMR
GWWMMGRYYYMWMWMGBMWYWMMMWYGWWRWGGMMM -> THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG
GMRWMGRMMMMWMRMMBMMRRMMCRMGMRRMRGMMM
GMWCWWWMYMGMMRGMWWMRWYGBWMGMWWMWGYGW
Réponses:
JavaScript (ES6),
103 100 93 9290 octetsEnregistrement de 9 octets grâce à @ShieruAsakoto
Prend les entrées sous forme de tableau de colonnes. Retourne un tableau de caractères.
Essayez-le en ligne!
la source
-
s disparaissent! : Da=>a.map(s=>"H-L-D--VGQ87MR6TZ-KJ9WC05BUXF1YI2EON3S-A-P4"[parseInt(s,35)%1161%219%152%43])
.a=>a.map(s=>"UIR-L68N--W-X7B-FH-D-EZ--902-S4M5GJCQT3PKV-A1-YO"[parseInt(s,35)%464%107%99%52])
Gelée , 50 octets
Essayez-le en ligne!
Un lien monadique acceptant l’entrée sous forme de liste de colonnes et produisant une chaîne Jelly de la traduction. Explication complète à suivre, mais repose sur le fait que chaque ensemble possible de 5 lettres est unique lorsqu’il est converti en points de code, reconverti de la base 256 en décimal, puis du mod 211.
Alternative utilisant la police fixe d'Arnauld (49 octets et utilisant le même principe.)
Explication
la source
dzaima / APL,
8079737271 octetsEssayez-le en ligne!
la source
⊇
(similaire à{⍵[⍺]}
), mis à part cela, ces deux fichiers contiennent des informations à son sujet05AB1E ,
4544 octetsEssayez-le en ligne!
Prend l'entrée en tant que tableau de colonnes et génère un tableau de caractères.
Explication:
la source
R ,
143128 octetsEssayez-le en ligne!
Fonction prenant un vecteur de chaînes (correspondant aux colonnes) en entrée, par exemple:
Explication:
Effectuer l'opération suivante pour chaque chaîne codée (par exemple, 'CRGBY' = 'S'):
on obtient la chaîne suivante à
'#</Eb=,n9J.M4Z+%*V N[Hd\B?1Oj>KgRYT2'
laquelle correspond chaque caractère'0123456789ABCDEFGHIJKLMNOPQR'
.Ainsi, le code effectue les opérations décrites sur les chaînes d'entrée, puis recherche leurs correspondances dans l'
'#</Eb=,n9J.M4Z+%*V N[Hd\B?1Oj>KgRYT2'
obtention des positions dans la chaîne'0123456789ABCDEFGHIJKLMNOPQR'
.la source
Charbon de bois , 66 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Prend les entrées sous forme de liste de colonnes terminées par une ligne vide. Explication:
Entrer des chaînes jusqu'à ce qu'une soit vide.
Index cycliquement dans la chaîne
OV EX8HSCF5IA L TG 17 M P9RB 4 K ZY2 0JW 63Q ND U
qui (avec l'espace de fin) contient 56 caractères.Effectuez une conversion en base 7 à l'aide de l'alphabet
WMYCBGR
, puis réduisez-la successivement modulo 360, 113, 71 et 56 implicitement via l'indexation cyclique.Mon approche de base 7 a vraiment mal fonctionné avec la police fixe de @ Arnauld; après quelques recherches, j'étais encore à 73 octets. En utilisant l'approche de @ Grimy, réduisez ce nombre à 67 octets. Cependant, j'ai finalement trouvé une solution de 66 octets:
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Explication:
Entrer des chaînes jusqu'à ce qu'une soit vide.
Indexer cycliquement dans la chaîne de
ID HAM178 VS4F 3R EP6CQ Z UB O 0 X 9 G 5TNJKL2Y W
63 caractères.Effectuez une conversion en base 47 en utilisant l’alphabet
0-9A-Za-k
, puis réduisez-la successivement modulo 237, 73, 67 et 63 de manière implicite via l’indexation cyclique.la source
CJam (63 octets)
ou au format xxd
Il s'agit d'un bloc anonyme (fonction) qui attend une entrée sous forme de liste de colonnes. Démo en ligne .
Comme beaucoup d’autres réponses, il s’agit d’une conversion de base suivie d’une chaîne de% pour obtenir une table de correspondance courte. Dans ce cas, j'utilise la base 16 et la chaîne%
[245 225 214 197 159 123 97 40]
.la source
Gelée , 48 octets
Un lien monadique acceptant une liste de listes de caractères majuscules (chacun étant une colonne) qui produit une liste de caractères.
Essayez-le en ligne!
Comment?
la source
Ruby , 109 octets
Essayez-le en ligne!
la source
Stax , 46 octets
Exécuter et déboguer
Chaque colonne est décodée en base 36. Des modules successifs de 8273, puis 95 sont appliqués. Cela donne un nombre unique, recherché dans une chaîne fixe.
Il prend les entrées exactement dans le format spécifié dans les exemples et doit les transposer pour obtenir des colonnes. Je pourrai sauvegarder des octets en utilisant différents formats d’entrée, ce que je pourrai faire à un moment donné.
la source