Dans cette police pixélisée de lettres majuscules de l'alphabet, tous les caractères font 5 unités de large et 5 de haut.
███ ████ ███ ████ █████ █████ ████ █ █ █████ █ █ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██
█████ ████ █ █ █ ████ ████ █ ██ █████ █ █ ███ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ ████ ███ ████ █████ █ ████ █ █ █████ ███ █ █ █████ █ █
█ █ ███ ████ ███ ████ ████ █████ █ █ █ █ █ █ █ █ █ █ █████
██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ █ █ █ ████ █ █ ████ ███ █ █ █ █ █ █ █ █ █ █ █
█ ██ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ ███ █ ████ █ █ ████ █ ███ █ █ █ █ █ █ █████
Il y a aussi 1 unité d'espace entre les lettres et entre les lignes, comme on peut le voir. Ainsi, chaque lettre peut occuper jusqu'à 6 × 6 unités d'espace.
Supposons qu'au lieu d'utiliser le caractère de bloc complet ( █
) pour former directement les formes des lettres, nous voulions utiliser d' autres lettres dans la même police . Cela implique de multiplier par 6 les dimensions du texte afin que les lettres constituées de blocs entiers puissent être utilisées comme remplacements de bloc complet dans le texte plus grand.
Si cela n'a pas de sens, nous espérons que cet exemple le fera. Voici un A fait de B utilisant la police pixelisée:
████ ████ ████
█ █ █ █ █ █
████ ████ ████
█ █ █ █ █ █
████ ████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
████ ████ ████ ████ ████
█ █ █ █ █ █ █ █ █ █
████ ████ ████ ████ ████
█ █ █ █ █ █ █ █ █ █
████ ████ ████ ████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
Les B sont constitués de blocs pleins et les A sont constitués de B. Notez que les B ont toujours une unité entre eux horizontalement et verticalement.
Nous pouvons étendre cette idée en utilisant des mots au lieu de simples lettres. Voici "L'EAU" en "FEU":
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █
█████ █████ ████ █████ █████ █████ ████ █████
█ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████
█ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █
█████ █████ ████ █████ █████ █████ ████ █████ █████
█ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████
█ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████
Remarquez comment "FIRE" apparaît à plusieurs reprises sur chaque ligne, et toujours dans l'ordre, quel que soit l'espace entre les lettres. Trois des cas les plus à droite de "FEU" ont été coupés tôt en raison de la forme des lettres de "EAU".
Cette idée peut être encore développée, en utilisant ces mots faits de mots pour faire des mots faits de mots faits de mots , ou même des mots faits de mots faits de mots faits de mots . Il n'y a pas de limite théoriquement.
Un autre exemple mettrait ce message au-dessus de la limite de 30 000 caractères, mais vous pouvez voir ce que l'on entend par «mots faits de mots faits de mots» en exécutant cet astucieux extrait de pile. Laissez simplement les paramètres à leurs valeurs par défaut et appuyez sur "Go!". Vous devriez voir le mot "DOG" fait du mot "CAT" fait du mot "MOUSE".
Taper toute liste de mots séparés par des espaces ne contenant que des majuscules dans la zone de texte produira le premier mot fait du deuxième mot fait du troisième, fait du quatrième, fait de ... etc.
AVERTISSEMENT: la saisie de plus de 4 ou même de 3 mots produira BEAUCOUP de texte et prendra du temps. Cela peut planter votre navigateur / ordinateur / voiture.
Défi
Le but de ce défi est de refléter ce que fait l'extrait de pile avec le moins de caractères.
Vous devez écrire un programme qui accepte une chaîne de mots séparés par des espaces ne contenant que des lettres majuscules, et génère le premier mot "composé de" le deuxième "composé de" le troisième et ainsi de suite, en utilisant la police pixellisée indiquée ci-dessus.
La case à cocher "ASCII ordinaire" et les fonctionnalités de taille de police de l'extrait n'ont pas besoin d'être prises en charge dans votre programme. Refléter la transformation de listes de mots en mots constitués de mots est le point principal et la seule exigence.
Détails
L'entrée doit provenir de stdin, de la ligne de commande, ou vous pouvez simplement écrire une fonction qui prend une chaîne.
Vous pouvez supposer que l'entrée est toujours valide, c'est-à-dire une chaîne de mots en lettres majuscules, séparés par exactement un espace, sans espaces de début ou de fin.
La sortie doit aller vers stdout (ou une alternative similaire) ou vers un fichier avec le nom de votre choix.
La sortie doit consister entièrement en caractères vides espace , personnages espace plein , et les nouvelles lignes.
- Les caractères vides / plein espace doivent être respectivement espace et bloc plein (
,
█
), ou point et X (.
,X
) respectivement.
- Les caractères vides / plein espace doivent être respectivement espace et bloc plein (
La sortie ne doit contenir aucune colonne de début contenant uniquement des caractères d'espace vide , bien que toute combinaison de caractères d'espace vide de fin sur toutes les lignes soit autorisée.
Donc c'est permis:
X...X.XXXXX.. X...X.X X.X.X.XXXX.... X.X.X.X.. .X.X..XXXXX..
Mais ce n'est pas:
.X...X.XXXXX.. .X...X.X .X.X.X.XXXX.... .X.X.X.X.. ..X.X..XXXXX..
Il ne doit pas y avoir de lignes de début ou de fin contenant uniquement des caractères d'espace vide . Une seule nouvelle ligne de fin est éventuellement autorisée.
Voici une version plus conviviale de la police:
.XXX.
X...X
XXXXX
X...X
X...X
XXXX.
X...X
XXXX.
X...X
XXXX.
.XXX.
X...X
X....
X...X
.XXX.
XXXX.
X...X
X...X
X...X
XXXX.
XXXXX
X....
XXXX.
X....
XXXXX
XXXXX
X....
XXXX.
X....
X....
.XXXX
X....
X..XX
X...X
.XXXX
X...X
X...X
XXXXX
X...X
X...X
XXXXX
..X..
..X..
..X..
XXXXX
....X
....X
....X
X...X
.XXX.
X...X
X..X.
XXX..
X..X.
X...X
X....
X....
X....
X....
XXXXX
X...X
XX.XX
X.X.X
X...X
X...X
X...X
XX..X
X.X.X
X..XX
X...X
.XXX.
X...X
X...X
X...X
.XXX.
XXXX.
X...X
XXXX.
X....
X....
.XXX.
X...X
X...X
X..XX
.XXXX
XXXX.
X...X
XXXX.
X..X.
X...X
.XXXX
X....
.XXX.
....X
XXXX.
XXXXX
..X..
..X..
..X..
..X..
X...X
X...X
X...X
X...X
.XXX.
X...X
X...X
.X.X.
.X.X.
..X..
X...X
X...X
X.X.X
X.X.X
.X.X.
X...X
.X.X.
..X..
.X.X.
X...X
X...X
.X.X.
..X..
..X..
..X..
XXXXX
...X.
..X..
.X...
XXXXX
Notation
Il s'agit de code-golf, donc la soumission la plus courte en octets l' emporte. Toute instance d'un bloc complet ( █
) peut être comptée comme 1 octet au lieu de 3, donc les soumissions qui utilisent X
n'ont aucun avantage.
$('#question pre, .answer pre').css('line-height',1)
javascript:
Dans la barre d'URL et de le coller) pour faire de l'art ASCII ici beaucoup, beaucoup plus facile à lire:$('#question pre').css('line-height',1)
. Résultat: i.stack.imgur.com/XmB8C.png