Trump a besoin que le mur soit construit et vous allez le faire! Pour construire son mur le plus efficacement possible, j'ai créé un modèle simple et reproductible que vous pouvez utiliser:
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
Trump vous dira combien de segments de mur il a besoin et vous les construirez pour ressembler à ceci.
Voici le motif:
__ __ <-- 4-2-3-2-4 ' _ _ '
| |_| | <-- 3-1-2-1-1-1-2-1-3 ' | |_| | '
___| |___ <-- 3-1-7-1-3 '_| |_'
- - - - <-- 1-3-1-3-1-3-1-1 '- - - - '
- - - - - - - <-- 1-1-...-1-1 ' - -...- - '
- - - - - - - - <-- 1-1-...-1-1 '- - ... - -'
——————————————— <-- 15 Unicode U+2014
L'entrée sera toujours un entier> 0.
Cas de test:
1
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
2
__ __ __ __
| |_| | | |_| |
___| |______| |___
- - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -
——————————————————————————————
5
__ __ __ __ __ __ __ __ __ __
| |_| | | |_| | | |_| | | |_| | | |_| |
___| |______| |______| |______| |______| |___
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -
———————————————————————————————————————————————————————————————————————————
Comme vous devez le faire rapidement, écrivez le programme le plus court possible!
Si cela peut aider, j'ai écrit le défi en premier, le titre en dernier;)
JavaScript (ES6),
116115 octetsEnregistré un octet grâce à @Neil !
Explication
Quasiment la même chose que la méthode CJam de @Mauris , mais sans le mappage des caractères.
Les parties du mur sont au format:
parce que si vous répétez chaque ligne 15 fois, vous obtenez:
et après avoir coupé les 15 derniers caractères, vous obtenez:
Ungolfed
Tester
Afficher l'extrait de code
la source
.slice(-15)
place?__ __ n| |_| | n| |___n - n- n -n—
Jolf , 135 octets
Le golf considérable peut être fait.Désactivez les belles impressions et effacez la sortie pour un meilleur résultat. Essayez-le ici! . En outre, utilisez ceci pour tester un nombre arbitraire plus facilement.Je vais ajouter une explication plus tard.
la source
Haskell,
116118108 octetsExemple d'utilisation:
Ceci utilise la même stratégie que les autres réponses ici: chaque ligne du mur correspond à un cycle du motif, par exemple, "-" (tiret + espace) pour l'avant-dernière ligne. Répétez chaque motif, prenez 15 caractères pour obtenir un segment de mur, répétez-le et prenez des
15*n
caractères pour lesn
segments.Edit: @Mauris trouvé 10 octets. Merci!
la source
Utilitaires Bash + Linux (
247186180 octets)Puisque les caractères non imprimables ont été généreusement utilisés dans la construction du script ci-dessus, voici un hexdump:
la source
PowerShell,
103100 caractères (105 octets sur le disque, 102 sans nomenclature)Quasiment la même chose que la méthode @ user81655 .
Version non-golfée
Exemple d'utilisation
la source
param($c);' __ __n | |_| |n___| |n- n -n- n—'-split'n'|%{-join($_*15)[0..14]*$c}
PHP 5.4 (
182175 caractères)Version non-golfée
[7 caractères enregistrés en suivant la suggestion de Blackhole. ]
Une autre version avec moins d'octets mais plus de caractères
PHP 5.4, (176 caractères, 178 octets)
Il suffit de remplacer 15 instances de m-dash par un tiret avec la fonction str_repeat
la source
$s
, utilisez-la directement dans votre boucle:foreach([…,…] as $d)
2) Supprimez les espaces sauf si$d
:foreach(… as$d)
3) Utilisez une nouvelle ligne au lieu de"\n"
.C, 148 octets
Score exclut la nouvelle ligne inutile avant
f(n)
qui est incluse pour plus de clarté.les nombres magiques dans
p
codent les caractères du mur en base 4, qui sont reconstruits à partir de la chaîne" -|_"
0,1,2,3 respectivement16843009
dans l'hex est0x1010101
. Ceci est utilisé pour les lignes avec-
en eux.Parce que
_
est codé par3
, la ligne du bas peut être codée simplement comme-1
, c'est-à-dire le nombre avec tous les bits mis à1
.la source
#define q
et en codant en dur les valeurs.Vitsy , 121 octets
Pour ce faire, vous devez accéder à chaque ligne une à une fois, en me donnant des piles avec le contenu de chaque ligne. Ensuite, je produis une ligne à la fois. Si quelqu'un veut que je donne une explication plus détaillée, il suffit de demander (j'ouvre actuellement des cadeaux, alors ...).
Essayez-le en ligne!
la source
PHP5.5,
182172 octets168 octetsbasé sur la réponse de @ kuldeep.kamboj, qui est en réalité de 212 octets au moment où j'écris ceci, mais 182 caractères. Je souhaite que le mur soit un peu plus haut, alors je pourrais faire plus d'optimisation ;-)
celui-ci est de 168 octets, grâce à @ JörgHülsermann
Celui-ci est de 172 octets
Celui-ci est de 182 octets :-)
version non-lisée
la source
$x=$r(' ',3);
peut être raccourci à$x=' ';
as$z
Python 3,
132122120 octetsUngolfed:
la source
)for s in[
...Python 2, (161 caractères, 191 octets)
la source
SOGL V0.12 , 32 octets
Essayez-le ici!
Explication:
la source
Vim, 90 clés
En supposant que l’entrée se trouve dans une mémoire tampon seule, le travail suivant fera le travail (nouvelle ligne uniquement pour des raisons de lisibilité)
où
^M
est un return,^[
est escape,^K
est ctrl+ket^V
est ctrl+v.Il est fort probable que cela risque d’être gâché un peu, car il existe peut-être de bien meilleurs moyens de générer ce schéma.
la source
Java 11,
236235231229 octetsEssayez-le en ligne.
REMARQUE: Java 11 n'est pas encore sur TIO et
String.repeat(int)
a donc été émulé avecrepeat(String,int)
(pour le même nombre d'octets).Explication:
la source
Powershell + fichier, 92 octets
enregistrer le PowerShell dans
get-trumpwall.ps1
(40 octets)enregistrer le fichier de données avec le nom
f
et les données contient le symbole Unicode et Linux LF uniquement (52 octets):vidage hexadécimal:
Exemple d'utilisation
la source