introduction
Le 26 août 2017, Floyd Mayweather, Jr. affrontera Conor McGregor dans un match de boxe.
Les deux participants recevront le montant phénoménal de 100 millions de dollars!
Malheureusement, nous n'avons pas encore l'argent, mais nous pouvons déjà préparer la grande mallette qui contiendra tous les billets.
_________________________
| |
|=======================================|
| $ $$$$$ $$$$$ $ $ |
| $ $ $ $ $ $ $$$ $$$ |
| $ $ $ $ $ $ $$$ $ |
| $ $$$$$ $$$$$ $ $ |
|_______________________________________|
La mallette est composée de _
, |
, =
et $
.
Il a une taille de 41 caractères en largeur (en ignorant les sauts de ligne) et 6 en hauteur (+2 pour la poignée).
Défi
Sans aucune entrée, écrivez un programme complet pour sortir un porte-documents 2D (voir ci-dessus).
But
Il s'agit de code-golf , donc la solution la plus courte (en octets) l'emporte.
Réponses:
Bubblegum, 55 octets
Probablement possible de faire de la magie de suppression d'en-tête, mais je ne suis pas aussi bon que Dennis!
Essayez-le en ligne!
la source
Gelée ,
9275 octetsEssayez-le en ligne!
Comment?
Étape 1. Construisez une liste des rangées de la moitié droite d'une mallette vide, en ignorant les espaces de fin:
Étape 2: transformez cela en une mallette vide:
Étape 3: Montrez-moi l'argent!
la source
JavaScript (ES6),
187184 octetsComment?
La sortie est construite en utilisant ces 16 modèles uniques:
Démo
Afficher l'extrait de code
la source
05AB1E , 80 octets
Essayez-le en ligne!
Explication
Les grandes lignes de la mallette:
05AB1E , 41 octets
Essayez-le en ligne!
Explication de la sous-explication (première partie):
J'ai converti la conception globale en coupant la conception en deux, en remplaçant tous les caractères par 2-6 et enfin en la convertissant en base 255 et en reconstruisant la forme en utilisant
5
un délimiteur de nouvelle ligne.Est le nombre exprimé en base 255, et sa conversion en base 6 est ...
Ensuite, diviser cela sur cinq, mettre en miroir et rejoindre par des nouvelles lignes nous obtient ...
Explication de la sous-explication (deuxième partie):
Vous commencez à voir où cela va? Ensuite, je compresse le motif interne sous la forme d'une chaîne de base 255:
Lequel est:
Convertir en binaire:
Pour chacun de ces caractères, remplacez un espace par le caractère suivant, de manière itérative:
Enfin, remplacez les personnages par ce qu'ils sont censés être.
Pour la perte:
En le compressant en deux modèles distincts, j'économise 20 octets sur:
Lequel est:
Converti en base 10:
92 octets plus la translittération, ce qui totaliserait environ 105.
la source
SOGL ,
5857 octetsExplication:
Essayez-le ici!
54 octets (en compétition? )
La commande utilisée ici est
╥
- palendromize, qui ne fonctionnait que sur les chaînes, mais était également documentée pour les tableaux . (actuellement, il n'est implémenté que sur l'interpréteur en ligne)Essayez-le ici!
la source
PHP, 117 octets
Je suis triste qu'il n'y ait rien de plus court que l'approche paresseuse - gzipez la chaîne et encodez en base64:
Compression personnalisée: 188 octets
168 164 159 152151 octets avec une adaptation de l'idée officielle de l'aimaim :Les lignes peuvent être vues comme un bitmap entre un caractère de frontière (espaces pour les deux premiers, pipe après cela), avec un espace comme
0
et un autre caractère comme1
.Inverser les lignes 3 et 8 leur a donné une valeur
0
, donc j'ai pu décaler toutes les valeurs de 6 bits.Le tableau contient les bitmaps (convertis en base 34; mais seulement 7 valeurs - le 8ème élément est omis, un élément vide est également évalué
0
). La base 35 fonctionnerait également; mais la base 33 a des valeurs plus longues et la base 36 aurait besoin d'une valeur supplémentaire citée.La chaîne contient la frontière
0
et les1
caractères dans cet ordre pour chaque ligne (en omettant le dernier caractère, car les lignes 3 et 8 n'ont pas besoin de1
caractère, sans bit défini).Compression personnalisée par Jörg,
159156 octets :la source
Gelée , 114 octets
Essayez-le en ligne!
la source
Braingolf , 267 octets
Essayez-le en ligne!
Alors golfy ...
la source
/// , 155 octets
Essayez-le en ligne!
J'adore quand /// peut rivaliser.
Explication:
Cela fonctionne en définissant des remplacements communs comme
$$$$$
, puis en définissant des méta-remplacements qui incluent les remplacements d'origine.Plus en profondeur:
Tout d'abord, la seule caractéristique de /// est sa
/pattern/replacement/
syntaxe et sa capacité à utiliser des barres obliques inverses pour échapper à d'autres barres obliques inverses et barres obliques. Ces informations sont importantes dans l'explication.Le premier modèle / remplacement dans le code est uniquement à des fins de golf (et détaillé ici ). Il remplace
~
par//
, donc le code résultant ressemble à ceci:Ensuite, un tas de remplacements de base sont effectués. Certains s'appuient sur d'autres (méta-remplacements), mais le tableau des remplacements ressemble à ceci (code enveloppé dans
`
s):Les méta-remplacements ici sont des choses comme
/&/%$$/
. Cela prend le remplacement déjà existant$$$
et l'utilise pour définir un nouveau remplacement$$$$$
.Viennent ensuite les très gros remplacements. Le premier remplace
9
par$ $ $ $ $ $
et le second remplace8
par:Notez les espaces de fin.
Tous ces remplacements sont ensuite utilisés dans la chaîne suivante:
Pour obtenir la sortie souhaitée.
la source
Python 2 ,
221 205 197 196193 octetsa="6ZBRS533| $"
etb="70JYF0U7|"
Essayez-le en ligne!
Explication:
Chaque ligne est sous une forme générique
pup
oùp
est un caractère frontière et u est une chaîne avec deux caractères uniques (pour chaque ligne) qui peuvent être représentés par 1 et 0. Par exemple, la ligne 5 est:| $ $ $ $ $ $ $$$ $$$ |
Il a | comme caractère de limite et la chaîne du milieu contient uniquement
et
$
. La chaîne du milieu peut être représentée par:111011101101110110111011000111000111111
Maintenant, cette chaîne binaire peut être représentée par un nombre de 36 bases:
6JNFT2RJ
Nous pouvons représenter toutes les lignes par une chaîne définitive avec la chaîne de 36 bases, le caractère de limite et les caractères utilisés dans la chaîne du milieu comme suit:
Nous pouvons ainsi décompresser la chaîne de base 36 (après l'avoir extraite de la chaîne définitive) en chaîne binaire, remplacer 1 et 0 par les caractères (également obtenus à partir de la chaîne définitive) utilisés dans la chaîne du milieu et coller avec des caractères de frontière aux deux extrémités . Ainsi, la chaîne requise est obtenue.
la source
C,
415402397 octetsEssayez-le en ligne!
la source
Retina ,
140137129 octets-3 octets grâce à @Neil
Essayez-le en ligne!
la source
1
s pour autre chose, ne pouvez-vous pas écrire$*<space>
directement?C (gcc) ,
388386302 octetsEssayez-le en ligne!
la source
05AB1E , 121 octets
Essayez-le en ligne!
la source
JavaScript (ES6),
177166 octetsLa chaîne contient une collection de caractères à afficher ainsi que le nombre de répétitions. Si un caractère n'est pas répété, le nombre de fois peut être omis.
Les séquences de chaînes répétées sont optimisées en stockant dans les variables
r
ets
.Fragment:
la source
Python 2 , 135 octets
Essayez-le en ligne!
la source
Fusain , 52 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Imprimez la moitié gauche de la mallette.
Préparez le curseur afin que la chaîne compressée puisse être imprimée directement après réflexion. (Mettre le mouvement vers le bas après la réflexion ou avant que la chaîne compressée change leur signification.)
Réfléchissez pour terminer la mallette.
Imprime le montant sous forme de chaîne compressée. (Malheureusement, c'était l'approche la plus courte, car sinon, cela
M
consomme trop d'octets.)la source