Malheureusement, l' un des plus grands auteurs de bandes dessinées est décédé hier après-midi. Beaucoup de stars d'Hollywood, musiciens, acteurs et beaucoup d'autres personnes rendent hommage à cet écrivain génial, nous devons donc faire quelque chose également.
Défi
Imprimer le logo Avengers
Remarque: Vous pouvez utiliser tout autre caractère à la place de # autre qu'un caractère d'espacement. alors que vous devez utiliser un caractère d'espace pour l'espace
En ASCII-art
######
###############
##### ##########
#### ####### ####
### #### ### ###
### #### ### ###
### #### ### ###
### #### ### ###
### #### ### ###
### #### ### ###
### ########### ###
### ########### ###
### #### ### ###
### ### ### ###
#### #### ####
######## ######
#################
###
Optionnel
Qui était (à ton avis) son plus grand héros et méchant dans tout l'univers de merveille?
Les règles standard du code-golf s'appliquent
code-golf
ascii-art
kolmogorov-complexity
Luis Felipe De Jesus Munoz
la source
la source
Réponses:
Gelée ,
625958 octetsMerci à @JonathanAllan pour le golf d'un octet!
Essayez-le en ligne!
Comment ça marche
est un littéral bijectif de base 250, qui utilise les caractères de la page de code de Jelly comme chiffres.
Les encode la littérales entières , qui se transforme en duodecimal, ce qui donne .102509388423967869630349112790021992661864817947516914398735485912803324069439057588344343197901909163 30 b 620 b 40 b a 54 une 64771433841333139413468423468423467433467433466 b 466 b 465453465363431424 b 43.896.860 b a 3 1230 b 620 b 40 b a 54 a 647714338413339413468423468423467433467433466 b 466 b 465453465363431424 b 43896860 b a 312
b12
Il y a des zéros, car 14 espaces (par exemple) sont codés en 3 espaces, 0 hachage et 11 espaces. Ceci maintient la base petite (la plus grande série est composée de 17 hachages), sans ajouter de logique supplémentaire au décodeur.
Ė
(énumérer) préfixe chaque chiffre de base 12 par son index basé sur 1, puisŒṙ
effectue le décodage par plage.Désormais, pour chaque entier du tableau résultant,
Ḃ
extrait le bit le moins significatif, puisa⁶
(AND espace) remplace celui-ci par des espaces, tout en laissant les zéros inchangés.Enfin,
s27
divise le tableau de caractères non formaté en morceaux de longueur 27, qui seY
séparent par des sauts de ligne.la source
R ,
198,173,163,157,144, 142 octetsEssayez-le en ligne!
Aussi
R
honneurs au grand Stan.Remarques :
#
nous avons utilisé le caractère4
car enregistre 2 octets et:4
semble être un mini "en biais"A
)Explication :
L'application d'un codage de longueur d'exécution (
rle
fonction) sur les caractères de la chaîne (à l'exclusion de'\n'
) renvoie 88 répétitions de l'alternance<space>,<hash>,<space>,<hash>,<space>,<hash>...
.Les 88 répétitions sont toutes des valeurs comprises dans la plage. Par
[1,17]
conséquent, en sommant,64
nous obtenons les points de code des lettres pour[A...Q]
obtenir la chaîne:"NFMOJEDJFDGGADCCHDACCCACIDACDFHDBCDFHDBCDFGDCCDFGDCCDFFKDFFKDFEDECDFECFCDCADBDKDCHIFHQJC"
Par conséquent, le code effectue essentiellement les opérations opposées:
la source
#
, utiliser0
à la place de"#"
devrait sauver 2 octets supplémentaires. @ J.Doe qui peut fonctionner mieux pour votre gzip aussi.Bubblegum ,
71666564 octetsMerci à @ovs pour le golf d'un octet!
Essayez-le en ligne!
la source
#
à!
.Python 2, 129 octets
Essayez-le en ligne!
la source
\n
de la chaîne compressée.Charbon de bois ,
716867 octetsEssayez-le en ligne! Le lien est vers la version verbeuse du code. Explication:
Sortie la moitié du cercle.
Réfléchis et dessine dans le bas.
Tirez le bras gauche et la barre transversale de l'A.
Dessine le bras droit du A.
Remplacez tous les caractères par
#
s.la source
C (gcc) ,
244243242 octetsEssayez-le en ligne!
-1 Merci à Peter Cordes
-1 Merci à ceilingcat
Utilise la compression de bits.
Explication:
Le but est d’imprimer un ensemble de nombres en binaire en utilisant espace et # en chiffres représentant le logo. Un peu de magie bash convertit le logo en masques binaires:
Il en résulte que les «nombres» binaires sont:
Il y a un motif évident au milieu où chaque ligne contient
### ### ###
Nous pouvons économiser de l’espace en comprimant cette section du milieu en sauvegardant ce motif et en effectuant une opération OR-ing. En outre, toutes ces lignes ajoutent simplement des éléments à gauche de la section centrale, nous créons donc la
z
macro qui la prend??????????????
et la convertit###??????????????### ###
. Cela implique un décalage de bits laissé par 10 et un OU-ing avec le binaire de ce motif, qui est 117441415.Maintenant, nous pouvons plus facilement comprendre le code:
la source
x?y:0
être remplacé parx&&y
ou la priorité de l'opérateur ne fonctionne-t-elle pas? Peut-être avec&
au lieu de,
séparer les 3 appels de fonction car la&
priorité est supérieure à&&
ou,
( en.cppreference.com/w/c/language/operator_precedence ). Ou pas parce que,
fournit uniquement un point de séquence pour l'impression vs. la récursivité afin d'éviter un comportement indéfini.&&
effet à cause de la priorité,&
sans court-circuit. Pour l'instant, je n'ai pas encore trouvé d'alternative plus courte, bien que je n'en écarte pas une.&
ou|
ou^
remplacer,
( parce qu'ils ne court-circuitent pas) et&&
remplacer?
(parce que c'est le cas). J'aime_<19 && b() & puts() & main(_+1);
(espaces ajoutés pour la lisibilité). L'ordre d'évaluation n'est pas défini, ce qui peut entraîner un comportement indéfini en raison d'effets secondaires nonstdout
séquencés sur en.cppreference.com/w/c/language/eval_order , mais dans la pratique, tout compilateur choisira un ordre pour un ensemble donné de cibles + options.T-SQL,
341338 octetsLes 4 premiers sauts de ligne servent uniquement à la lecture, le dernier saut de ligne fait partie d'un littéral de chaîne.
Semblable à mon hommage à Adam West , j'ai manuellement encodé une longue chaîne et effectué les remplacements suivants:
*7
est remplacé par+REPLICATE('#',7)
$4
est remplacé par+SPACE(4)
&
est remplacé par un saut de ligne entre guillemetsCela se traduit par une chaîne de commande SQL massive :
Qui, lorsqu'il est exécuté, produit la sortie nécessaire.
Long, mais meilleur que ma meilleure solution basée sur les ensembles ( 463 octets ):
la source
CHAR(8000)
au lieu deVARCHAR(max)
(la commande énorme est de 1453 octets)CHAR(2E3)
mais ça ne semblait pas aimer ça. J'ai également enregistré un octet en utilisant un littéral de saut de ligne au lieu deCHAR(13)
.Toile ,
747371 octetsEssayez-le ici!
la source
JavaScript (ES6),
173170 octetsEssayez-le en ligne!
Node.js , 163 octets
Pourvu qu'un tableau de chaînes soit une sortie valide:
Essayez-le en ligne!
la source
05AB1E ,
1018864 octets-24 octets en créant un port de @ Dennis ♦ 'Jelly answer .
Essayez-le en ligne.
Explication:
Voir ce conseil 05AB1E (sections Comment compresser des entiers de grande taille? Et Comment compresser des listes d’entiers? ) Pour comprendre le fonctionnement de la compression de l’entier et de la liste.
la source
•∍ΔÎë,½=bOÅ.âαUΔ'òõƶαÔγλ#xÆ]~”FbćÁ˜Ð”wнQ_wā©•12вDg„ #s∍S×J27ô»
en remplaçant„#
etεN>yи}˜è
parDg„ #s∍S×
C (gcc) ,
174168164160 octets-6 octets grâce à Dennis.
Essayez-le en ligne!
la source
/// , 170 octets
Essayez-le en ligne!
la source
Bash ,
192176 octetsEssayez-le en ligne!
-16 grâce à manatwork
Ceci est similaire à ma réponse en C, sauf qu’il utilise une compression base-16 brute et qu’elle passe par bc, puis utilise tr pour convertir 1 en # et 0 en espace. 1 rangée est ajoutée à chaque rangée et supprimée pour maintenir l'alignement.
Malheureusement,
dc
c'est plus court quebc
.la source
^
. Mais encore mieux, utilisez à lacut -c2-
place de lased
pièce.echo
et encore plus court avecdc
au lieu debc
: Essayez-le en ligne!echo
, mais allez -dc
pour Stan Lee ... vous devez être en train de plaisanter;)Haskell,
170163 octetsEdit: -7 octets grâce à @ Øjan Johansen
Essayez-le en ligne!
Les espaces sont codés en majuscules (longueur:
Z
jusqu'à caractère), les signes de hachage en minuscules (longueur:a
à caractère) et les trois derniers#
de chaque ligne plus la nouvelle ligne sous forme d'espace. La fonction lem
décode.la source
"###\n"
.Perl 6 ,
136112 octetsEssayez-le en ligne!
Analyse un nombre de base 128 à partir des valeurs ordinales de la chaîne compressée, convertit en base 2 et remplace le
1
s par des espaces. Cela utilise des zéros comme personnage principal. La chaîne a comme 9 octets nuls, ce qui était une chienne à taper dans TIO. J'aurais utilisé la base 127 pour le même nombre d'octets, mais pas de valeurs nulles, mais avec un retour à la ligne, ce qui semble impossible à distinguer d'une nouvelle ligne:(
Explication:
la source
J ,
130128 octetsEssayez-le en ligne!
Solution initiale
J , 164 octets
Essayez-le en ligne!
la source
PHP ,
286212209208 octetsEssayez-le en ligne!
la source
Perl 5 , 181 octets
Essayez-le en ligne!
la source
MATLAB : 144 octets
Essayez-le en ligne! (Techniquement en octave)
Explication:
Ceci utilise la même stratégie que digEmAll in R, juste avec la syntaxe MATLAB. La principale différence est que MATLAB a une conversion automatique des caractères en entiers.
la source
C # (.NET Core) , 199 octets
Essayez-le en ligne!
Utilise la même approche que ma solution à l' hommage rendu à Adam West .
la source
Deadfish ~ ,
726723 octets-3 octets grâce à @squid
Essayez-le en ligne!
N'ayant jamais rien vu / lu de merveille et ne s'appuyant que sur des spoilers, il semble que Thanos soit le meilleur.
la source
Turing Machine But Way pire - 16913 octets
Fait avec le générateur de programme ASCII_only
la source
déflater, 79 octets
eJyVkcsJADAIQ ++ ZIpD9dyxUqrGUgjlpHvglXdqCJymk1yEiaRXEIOXzuBHCiKObReUxUzYaMdt2wmTBg / FmNXndgLRbNvL7mL6mL6mLQifs
la source
deflate
langue, car elle ressemble à une chaîne base64Brainf ***,
656652605 octetsLa boucle au début initie la bande à
Ensuite, le reste du code affiche ces caractères.
(-47 octets grâce à orthoplex)
la source
T-SQL, 244 octets
Golfé:
Ungolfed:
Essayez-le en ligne version non-golfée
la source