Choisissez un ensemble de quatre octets sans remplacement (c'est-à-dire sans octet répété), et pas nécessairement dans un ordre particulier, dans l'un des quatre ensembles suivants:
- Les caractères d'un codage sur un seul octet
- Les caractères Unicode dans la plage 00 – FF
- Les entiers décimaux signés compris entre −128 et 127
- Les entiers décimaux non signés dans la plage 0–255
Les quatre valeurs que vous avez choisies (veuillez préciser lesquelles) sont les entrées valides. Vous devez associer chaque valeur à l'une des illustrations ASCII ci-dessous.
Étant donné (par n'importe quel moyen) l'une de vos quatre entrées valides, répondez (par n'importe quel moyen, même à une liste de chaînes) avec l'art correspondant ASCII. Un espace blanc supplémentaire est autorisé sur tous les côtés, à condition que l'image soit dans une zone 2D contiguë.
Premier octet:
/\
/ \
| |
| |
| |
|____|
\__/
| |
| |
| |
| |
/\ | | /\
/ \| |/ \
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
AAAAAAAAAAAA
Deuxième octet:
/\
/ \
| |
| |
| |
|____|
\__/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
AAAA
Troisième octet:
/\
/ \
| |
| |
| |
|____|
\__/
| |
| |
| |
|__|
/\
Quatrième octet:
db
_/\_
\__/
| |
| |
| |
|__|
/\
Qu'y a-t-il de nouveau dans ce défi de complexité d'art de Kolmogorov art ASCII?
La possibilité de sélectionner des entrées valides présente un nouvel aspect du défi. Les entrées sont clairement trop limitées pour coder l'intégralité du résultat, mais peuvent contenir suffisamment d'informations pour mériter votre attention.
Les multiples sorties possibles partagent beaucoup de structure, ce qui permet de réutiliser du code ou des sous-images à la fois dans chaque image et entre les images.
Il y a suffisamment de duplication pour que même les langues qui ne sont pas bien préparées à faire face à des défis comme celui-ci aient de bonnes chances de pouvoir utiliser un code intelligent plutôt que de simplement coder de manière rigoureuse.
Réponses:
JavaScript (ES6), 247 octets
RegPack'ed. Attend 0 ... 3 en entrée.
Essayez-le en ligne!
la source
BigFu!#?%$Rocket
? Mais ce n'est que Falcon Heavy!BFR.reduce() == FalconHeavy
: p"FRFRFRF" = "Fu!#?%$RocketFu!#?%$RocketFu!#?%$RocketFu!#"
droite? J'adore cette réponse plus que tout lol.Charbon de bois , 67 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Prend la saisie sous la forme d'un numéro 3-0. Explication:
Entrez le numéro.
S'il est 3, dessinez la moitié de l'amplificateur, répliquez-le en miroir, puis déplacez-vous vers l'extrémité de la fusée.
Si ce n'est pas 0, dessinez la moitié gauche du réservoir de carburant avant.
Mais si c'est 3, dessinez la moitié gauche du cône de nez.
Dessinez le côté gauche de la fusée.
Dessinez la base appropriée de la fusée, puis effectuez un miroir pour terminer.
la source
Charcoal
juste pour ce concours?Propre ,
292278273271262261 octets-5 octets grâce à Adam
Essayez-le en ligne!
Une fonction lambda, mappant les
Int
valeurs0..3
sur les images dans l'ordre indiqué dans l'OP.la source
Python 2 ,
292290284282281 octetsEssayez-le en ligne!
Prend un entier compris entre 0 et 3 en tant qu'entrée et utilise l'indexation par liste (1 ou 0) pour générer chaque sortie.
-2 pour une paire de crochets inutile.
-6 en supprimant une affectation de variable qui n'a été utilisée qu'une fois.
-2 pour une autre variable à usage unique.
-1 avec un conseil de @Rod
la source
n
,p
etq
sont également inutiles (-2 octets chacune)." db"
et"_/\_"
sera rejoint avec"\n"
plus tard, vous pouvez transformer les deux en" db\n_/\_"
pour enregistrer un autre octet. Vous pouvez (probablement) déplacer le+y
, de chaque élément, hors de la liste (et supprimer le const aussi) quelque chose comme(...)[i>2]+["\__/"]
Ruby ,
234212205 octetsEssayez-le en ligne!
Prend un entier 0-3. Construit un tableau des moitiés de gauche de chaque phase, indexe, puis insère et reflète chaque ligne. Tous les rembourrages ont la même largeur, de sorte que les derniers espaces sont précédés de blancs. Retourne un tableau de chaînes.
-2 octets: Déclarer
y
comme un tableau tout de suite au lieu d'avoir besoin de*[y]
plus tard.-5 octets: remplacer
x="\\"
part=%w{_| \\}
.-5 octets: moins de déréférencement, plus d'ajout de tableau.
-1 octets:
h+y*21+[?A*2]
->h+y*21<<?A*2
en phase 1.-3 octets: La spécification permet l'omission de
*$/
joindre le résultat.-4 octets:
["b","\\_","_/"]
->%w{b \\_ _/}
en phase 3.-2 octets: Utilisez également la
%w
notation dans le tableau principal.-7 octets: à utiliser à la
rjust
place du remplissage manuel (cela signifie également générer le côté gauche et le mettre en miroir au lieu de commencer par le côté droit)Ungolfed:
la source
SOGL V0.12 , 90 octets
Essayez-le ici!
Entrées 0/1/2/3 correspondant aux octets 1/2/3/4
la source
Ruby ,
209183 octetsEssayez-le en ligne!
Entrées requises comme suit:
L'idée est de prendre le
centre core + upper stage + fairing
par défaut et de le modifier pour les autres sorties.Commenté
la source
Rouge , 333 octets
Essayez-le en ligne!
Prend 1 à 4 en entrée
Rebol , 258 octets
J'ai fait une expérience avec la
compress
fonction de Rebol , compressant une chaîne de toutes les 4 étapes et en imprimant la partie correspondante après décompression:la source
Jstx , 124 octets
Explication
Essayez-le en ligne!
la source
C (clang) ,
421408 octetsEssayez-le en ligne!
la source