Ne trouvez-vous pas que la lecture d'un texte simple n'est pas assez attrayante? Essayez notre
##### ### ### ##### ##### ##### ##### # # ##### #
# # # # # # # # # # # # #
##### ### # # # # #### # # #
# # # # # # # # # # # #
# # ### ### ##### ##### # ##### # # # #
Beaucoup plus chic, non? Mais c'est assez long pour écrire à la main, ce serait merveilleux si quelqu'un faisait un programme qui le faisait pour moi!
Votre tâche , si vous vous portez volontaire pour m'aider, sera d'écrire un programme ou une fonction qui prend une chaîne contenant[a-zA-Z\s\n]
uniquement, et de produire (ou de retourner) l'écriture ascii de celle-ci!
Vous devez utiliser l'alphabet suivant pour formater votre sortie:
##### #### ### #### ##### ##### ### # # ##### ##### # # # # #
# # # # # # # # # # # # # # # # # # ## ##
##### #### # # # #### #### # ## ##### # # ### # # # #
# # # # # # # # # # # # # # # # # # # # # #
# # #### ### #### ##### # ### # # ##### ### # # ##### # #
# # ### #### ### #### ### ##### # # # # # # # # # # #####
## # # # # # # # # # # # # # # # # # # # # # #
# # # # # #### # # #### ### # # # # # # # # # # #
# ## # # # # ## ## # # # # # # ## ## # # # #
# # ### # #### # # ### # ### # # # # # # #####
L'espace:
|
| it's a 5x5 square of spaces
| but had to pad it with |s to make it appear in this post
|
|
Comme il s'agit d'une police à largeur fixe, le caractère d'espace est également entouré d'espaces, ce qui entraîne un espace de 7 largeurs entre les deux lettres.
a b
1234567 -- these numbers are just for the example, you don't have to output them
##### ####
# # # #
##### ####
# # # #
# # ####
a b
1234567890123
##### ####
# # # #
##### ####
# # # #
# # ####
Lorsque vous rencontrez une nouvelle ligne, comme dans l'entrée
ascii
text
Assurez-vous simplement de séparer les deux blocs de texte par au moins une ligne vide
##### ### ### ##### #####
# # # # # # #
##### ### # # #
# # # # # # #
# # ### ### ##### #####
##### ##### # # #####
# # # # #
# #### # #
# # # # #
# ##### # # #
En outre, vous êtes autorisé à remplacer le #
s par tout autre caractère tant qu'il se trouve dans la plage ASCII imprimable et qu'il ne s'agit pas d'espaces. Vous pouvez par exemple utiliser A
s pour la lettre A, B
pour la lettre B et ainsi de suite.
Comme il s'agit de code-golf (et de plus de complexité kolmogorov ), la soumission gagnante sera celle qui résoudra ce défi dans le moins d'octets possible, amusez-vous!
la source
Réponses:
Python 3, 375 octets
Voir ce code en cours d'exécution sur ideone.com.
Le même code, mais en quelque sorte bien indenté, formaté et commenté:
J'ai également décidé d'opter pour le codage en base 36, car c'est le
int()
support natif intégré le plus élevé de Python . Voici un court script Python 3 que j'ai écrit (non golfé) qui convertit les définitions de police comme dans la question en codes de base 36: Mon convertisseur sur ideone.comLe résultat se compose du caractère en
1
tant que pixel activé et d'un espace entant que pixel désactivé. Voici un seul exemple d'exécution:
Entrée (saut de ligne comme
\n
):Production:
la source
Clojure, 552 octets
Chaque lettre en ascii est représentée comme une chaîne binaire avec # - 1, espace - 0. Ensuite, elle est convertie en base 36 de sorte qu'il ne faut que 5 caractères pour stocker + ":" pour permettre à Clojure de savoir qu'elle doit être traitée comme symbole. Ensuite, l'entrée est divisée par un symbole de nouvelle ligne et pour chaque ligne, nous convertissons une lettre en base 36 en base binaire et obtenons les premiers symboles [0: 5] ajoutez des symboles de nouvelle ligne, obtenez les symboles [5:10] suivants et ainsi de suite.
Vous pouvez le voir fonctionner ici - https://ideone.com/y99ST5
la source
SOGL , 137 octets (non concurrent)
Explication:
Remarque: actuellement, cette langue ne peut pas vraiment accepter la chaîne d'entrée multiligne, je lui ai donc demandé un nombre et lu les lignes x suivantes comme entrée.
La première chaîne est
compressé à l'aide d'un dictionnaire personnalisé qui utilise "" et "-" (la compression a un mode spécial avec "\ n - | / _" disponible donc encore plus de compression!)
Il contient 25 caractères par caractère ascii dans l'ordre de l'alphabet. ils sont commandés de haut en bas puis de droite.
les caractères vont comme
et c'est de la même manière que
┼
ajoute à un tableau.la source
foo\nbar
pour les entrées multilignesPowershell,
261253 octetsScript de test:
Production:
Remarque:
$s|% *per|% t*y
est un raccourci pour$s|% toUpper|% toCharArray
À propos de l'espace:
Pour chaque caractère de la chaîne source, le script prend un symbole (masque de bits) de la chaîne magique
'_ONO__NQ...'
. Cependant, l'index va au-delà de la chaîne magique d'un espace. Dans ce cas, le masque de bits$c
devient vide. Cela signifie zéro pour tous les bits.À propos de la ligne vierge:
Le script affiche 6 lignes pour chaque symbole au lieu de 5. L'index dépasse également la chaîne magique pour une ligne vierge. Ainsi, la ligne 6 contient uniquement des espaces.
Il est préférable de voir si vous imprimez un autre caractère au lieu d'un espace. Par exemple
·
.la source
C (gcc) , 326 octets
Un premier coup de couteau. Dû inclure stdio.h et string.h sur TIO, mais pas nécessaire avec MinGW.
Essayez-le en ligne!
la source
JavaScript (ES6),
292287278 octetsDémo
Afficher l'extrait de code
la source