C -> Brainfuck 556 octets
Excluant les espaces inutiles. Je pourrais facilement enregistrer une autre centaine en changeant les données de police d[]de hex en une chaîne entre guillemets.
i,j,s,t,u,v,w,h;
char a[99],b[9999],k,d[]={0x6F,0x3B,0x5A,0xD5,0x7A,0x6A,0x5B,0x2F,0xD0,0x57,0xA1,0x1B,0xCF,0x4F,0x5F,0x6E,0x6D,0x4E,0x79,0x3A,0x1F,0x95,0x9F,0xA6,0x3D,0x76};
f(int z){
return d[a[j-1-t%(2*w*j)/w/2]-65]>>z&1?z=b[i*v/u],b[i++*v/u]=' ',z:' ';
}
main(){
for(scanf("%s",a);a[j];i++)a[j]-k?k++,b[i]='+':(b[i]='.',t+=(0xE7572B70967DB>>(a[j]*2-130)&3)+5,j++);
s=i/t+2;
u=t*(s-1);
v=i;
i=0;
w=2*s;h=2*s+1;
for(t=2*w*h*j;t--;)putchar(
t%(2*w*j)?
t/2/w/j%s?
t%s||!(t/4%s)?' ':f(t/s%4/2+t/2/w/j/s*2|7*(t/s%4==2))
:(
(t%s)&&(t/s+1&2)?f(4+t/2/w/j/s):' '
)
:10 //newline
);
}
Cela utilise une police de calculatrice (pour une faible entropie, un seul octet par lettre) et un compilateur Brainfuck très naïf inspiré de https://codegolf.stackexchange.com/a/35801/15599 (sauf que j'utilise plus au lieu de moins). la première forboucle compile le texte dans ala chaîne bet calcule également le nombre de traits nécessaires pour dessiner le code formaté, en utilisant le nombre magique hexadécimal à 13 chiffres (tous les caractères sont de 5 à 8 traits).
Compte tenu de la longueur totale du programme et du nombre de traits, le nombre de caractères par trait est calculé (cela peut être très petit si les caractères sont identiques ou en ordre croissant, et très grand si les caractères sont en ordre décroissant.)
La majeure partie du reste du programme est consacrée à décider si un espace ou un des traits doit être imprimé. Si le curseur se trouve sur un carré de trait, la fonction fest appelée avec le numéro de ce trait comme argument. Il renvoie un espace si ce trait n'est pas requis pour la lettre actuelle, ou un caractère du programme s'il l'est. Étant donné que le nombre de caractères requis pour terminer l'art ASCII peut être supérieur aux caractères du programme, un espace est parfois inséré, d'où le calcul b[i * v/u].
Il y a quatre traits simples et quatre doubles traits dans la police, numérotés comme suit, qui sont présents ou absents, selon la lettre.
6666 6666
3 7 2
3 7 2
3 7 2
3 7 2
5555 5555
1 7 0
1 7 0
1 7 0
1 7 0
4444 4444
Production
Testez à http://copy.sh/brainfuck/
abc
+ ++ +++ ++++ + ++
+ + +
+ + + +
+ + +
+ + +
++++ + ++ +++ ++++
+ + + +
+ + + +
+ + + +
+ + + +
++++ + ++ ++. +.+.
DEF
+ ++ ++ + ++++ +++ ++ + ++++
+ + +
+ + +
+ + + +
+ + +
++ + +++ ++++ + ++
+ + +
+ + + +
+ + +
+ + +
++++ + ++ ++. +.+.
GHIJK
+ + +++ ++ +++ +++ ++
+ + + + +
+ + + + +
+ + + + + +
++ +++ + + +++
+ + + + + + + +
+ + + + + + +
+ + + + + + + +
+++ + + ++. +. +.+ .+.
LMNOP
+ + +++ + + +++ + + +++ + + +++
+ + + + + + + +
+ + + + + + + +
+ + + + + + + + +
+ + +++
+ + + + + + + +
+ + + + + + + +
+ + + + + + + + +
+ . +.+ . + .+.
QRSTU
+ + +++ +++ +++ +++ ++
+ + + + + + + +
+ + + + + + +
+ + + + + + + +
+++ +++ + + +++ +++ +++
+ + + + +
+ + + + + +
+ + + + + +
+++ ++ +++ .+. +.+ .+.
VWXYZ
+ + +++
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+++ +++ + + +++ +++ ++
+ + + + + + + + +
+ + + + + + + +
+ + + + + + + +
+++ + + +++ +++ ++ .+. +.+ .+.
COPIABLE
avec la plupart des chaînes avec des lettres dans un ordre aléatoire (non ascendant), la taille des lettres est beaucoup plus grande et les lettres sont beaucoup mieux. Malheureusement, la taille des fichiers devient assez importante. Je ne peux pas télécharger le mot complet UCOPYRIGHTABLE ici, COPYABLE est le mot le plus long que je suis autorisé.
+ +++++++++ +++++++++++ + +++++++++ +++++++++++ ++ ++++++++ +++++++++++ +++ +.+++++ +++++++.+.+ ++++ ++++.+ +++++++++++
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+++++++++ + +++++++++++ ++++++++++ +++++++++++ +++++++++++ ++++++++++ +++++++++++ + +++++++++ ++++++++++. +. ++++++++
+ + . + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+++++++++++ +++++++ +++ +++++++++++ ++++++++ ++ +++++++++++ +++++++++ + +++++++++++ ++++++++++ +++++++++++ +++++++++++ ++++++++++ ++++++++++.