Construis-moi un mur de briques!

73

Défi

J'ai besoin d'aide pour construire un mur de briques! Assemblez du code pour moi sans aucune entrée et créez le mur de sortie ci-dessous:

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

Maintenant, ce mur est exactement 10haute et 70large.

Comme indiqué ci-dessus, pas d'entrées, seulement du code. Moins d'octets, nous devons construire efficacement ce mur de briques. Évidemment, ce programme doit fonctionner pour que le mur soit construit ..? ou il ne va évidemment pas se construire! Bonne chance!


Gagnant

Le gagnant ira à Marinus en utilisant la APLlangue, nécessitant un 12octet entier ! https://codegolf.stackexchange.com/a/99028/61857


Merci à tous pour votre participation!

FivePixels
la source
2
Connexes , connexes ,
FlipTack
8
Aussi relié. (étrange que cela devrait arriver aujourd'hui, haha)
Conor O'Brien
1
C'est bon. Je vous ferai savoir quand j'aurai un interprète. En fait, j'y travaille actuellement :)
ETHproductions
2
Connexes !
RudolfJelin
30
Pour les points bonus, faites payer le Mexique pour cela.
Dawood ibn Kareem

Réponses:

46

APL, 12 octets

10 70⍴'_|__'

Sortie:

      10 70⍴'_|__'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
marinus
la source
1
Je viens de remarquer cette réponse en mettant ma réponse en J. ils sont fondamentalement les mêmes haha
Conor O'Brien
2
Cela produit quelque chose d'autre en plus du mur ASCII. Est-ce permis?
Tampon Over Lire
en utilisant tryapl.org, j'ai eu la sortie du mur. qu'avez-vous reçu @TheBitByte?
FivePixels
4
@Dylan He est probablement déconcerté, car le répondeur a inclus le programme dans la sortie sans connaître la nature de la REPL de APL.
Conor O'Brien
191

Trumpscript , 303 285 244 231 226 octets

make i 1000005-1000000
as long as,i;:
make i,i - fact;
say "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
say "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"!
America is great

Je voudrais dire que c’est l’un des langages les plus prolixes où presque tout ne parvient pas à être compilé dans un programme de travail.

Apparemment, le choix de -travailler à la place de minusest totalement à la discrétion de l'interprète et parfois fonctionne. Cette fois, c'est ce que j'ai fait, alors je le mets au golf.

Abuse du fait que Trumpscript est écrit en Python et qu’il est donc factutilisé comme un entier.

Conseils de golf bienvenus.

Bleu
la source
48
Je suppose que Trumpscript ne permet pas des nombres inférieurs à 1 000 000? ;-)
ETHproductions
3
vous avez raison.
Bleu
2
Pouvez-vous utiliser i is 1000005-1000000et i is i-fact? (Je viens de jeter un coup d'oeil au readme de Trumpscript.)
AlexRacer
19
Je suis surpris que cela vous permette de l'utiliser 1000000. États de la documentationAll numbers must be strictly greater than 1 million. The small stuff is inconsequential to us. .
Mad Physicist
9
Factet lies(et d'autres constantes vérité / fausse) ont une chance aléatoire, basée sur le temps, de basculer (être inversé) pendant la génération de jetons (voir tokenizer.py, recherche flip_flop) peut être la raison pour laquelle cela ne semblait pas fonctionner minus, alors que cela devait vraiment être fait avec factà ce moment-là
pinkfloydx33
20

J, 12 octets

10 70$'_|__'

Façonne la ficelle à droite en une forme de 10 sur 70. Facile!

Conor O'Brien
la source
18

BBC BASIC, 28 octets

Taille de fichier en jetons 23 octets.

WIDTH70P.STRING$(175,"_|__")

WIDTH70serait normalement suivi d'une nouvelle ligne. Il définit la largeur du champ sur 70. Nous imprimons ensuite 175 copies de la chaîne, qui sont ensuite bouclées.

Level River St
la source
2
Meilleure (ab) utilisation de WIDTH que j'ai vue :)
ElPedro
Cela devrait alors avoir "23 octets" dans l'en-tête.
Adám
@ Adám Uniquement si la version à jeton est publiée en tant que réponse.
ErikE
17

Brainfuck, 171 octets

+++++[>+++++++++++++++++++<-]+++++++[>>++++++++++++++++++<<-]>>--<<++[>>>+++++<<<-]+++++[>.>.>>+++++++++++++++++[<<<...>.>>-]<.>+++++++++++++++++[<<<...>.>>-]<<<..>>.<<<-]

Brainfuck est amusant, voici mon mémoire.

Voici la sortie:

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

Voici un lien pour l'essayer

https://repl.it/EW2Z/0

Mitchell Humphrey
la source
16

WinDbg, 45 octets

f2000000 L2bc 5f 7c 5f 5f;da/c46 2000000 L2bc

Comment ça fonctionne:

f 2000000 L2bc 5f 7c 5f 5f; *Repeat the pattern _|__ (5F 7C 5F 5F) to fill 2BC (700) bytes 
                            *starting at 2000000
da /c46 2000000 L2bc        *Show 2BC (700) ASCII chars starting from 2000000 in lines 
                            *of length 0x46 (70)

Sortie:

0:000> f2000000 L2bc 5f 7c 5f 5f;da/c46 2000000 L2bc
Filled 0x2bc bytes
02000000  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
02000046  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
0200008c  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
020000d2  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
02000118  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
0200015e  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
020001a4  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
020001ea  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
02000230  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
02000276  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
Lait
la source
10

Pyth, 12 octets

Code:

jcT*175"_|__

Explication:

       "_|__    # For the string "_|__"
   *175         # Repeat it 175 times
 cT             # Chop into 10 equal pieces
j               # Join them by newlines

Essayez ici .

Adnan
la source
10

Python 2, 37 octets

s="_|__"*17;print(s+"_|\n__%s\n"%s)*5

Décompose deux lignes en 17 copies _|__, plus une copie interrompue par une nouvelle ligne, plus 17 autres copies, plus une nouvelle ligne.

Des alternatives plus longues:

print"%s_|\n__%s\n"%(2*("_|__"*17,))*5

s="_|__"*17;print"%s_|\n__%%s\n"%s%s*5

for i in[0,2]*5:print("_|__"*18)[i:i+70]

print("_|__"*17+"_|\n"+"___|"*17+"__\n")*5

for s in["_|__","___|"]*5:print(s*18)[:70]

s="_|__"*99;exec"print s[:70];s=s[2:];"*10

print("%s"*70+"\n")*10%(175*tuple("_|__"))
Xnor
la source
Votre dernière alternative est plus courte que print(("%s"*70+"\n")*10%(175*(*"_|__",)))dans Python 3.
mbomb007
8

05AB1E , 13 octets

Code:

"_|__"175×Tä»

Explication:

"_|__"         # For the string "_|__"
      175×     # Repeat that 175 times
          Tä   # Split into 10 even pieces
            »  # And join them by newlines

Utilise le codage CP-1252 . Essayez-le en ligne!

Adnan
la source
7

PHP, 44 42 41 caractères

<?=chunk_split(str_pad(_,700,"|___"),70);

(Juste parce que eu aucune chance d'utiliser chunk_split()jamais auparavant.)

Grâce à:

  • user59178 pour avoir suggéré d'utiliser str_pad()(-1 caractère)

Échantillon échantillon:

bash-4.3$ php <<< '<?=chunk_split(str_pad(_,700,"|___"),70);'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
homme au travail
la source
octets, pas le nombre de caractères.
FivePixels
2
Même. Je n'utilise pas de caractères multi-octets.
Manatwork
2
@pajonk, corrigé avec PPCG - 44 utilisateurs style barré
manatwork
Vous pouvez sauvegarder un octet en utilisant à la str_padplace de str_repeat, en grande partie parce qu’il _est traité comme une constante avec valeur_ .
user59178
7

Vim, 30 24 19 frappes

18a___|<esc>YP2x}h.yk4P

Merci à DrMcMoylex et à nmjcman101 d’avoir économisé de précieuses frappes au clavier!

Karpfen
la source
1
Bonne réponse, bienvenue sur le site! Quelques conseils: 1) acompte, vous pouvez donc le faire 18a___|<esc>au lieu de faire la macro. 2) <cr>en mode normal équivaut à j0, vous pouvez donc supprimer un octet de votre deuxième macro.
DJMcMayhem
Cool, merci pour les conseils!
Karpfen
1
J'ai joué un peu à votre solution pour le plaisir. Formater le mur avant de copier / coller enregistre tous les octets pour ne pas créer de macro: 18a___|<esc>YP2x}h.yk5P19 octets.
nmjcman101
Bien, je vais mettre à jour la réponse! Je vais simplement remplacer l'avant-dernière touche par 4, sinon le mur devient trop haut :)
Karpfen
6

Perl, 47 34 29 octets

$_="_|__"x175;say for/.{70}/g
Gabriel Benamy
la source
Vous pouvez jouer au golf jusqu'à 29:say for("_|__"x175)=~/.{70}/g
Dada
Pour une raison quelconque, cela ne produisait aucune sortie à chaque fois que je l’essayais, mais j’ai trouvé une autre solution avec autant d’octets. Merci quand même!
Gabriel Benamy
Eh bien, le code que j'ai suggéré produit une sortie valide ... Peut-être avez-vous oublié la parenthèse "_|__"x175ou quelque chose du genre?
Dada
Je pense que c'est ce que c'est. Je pensais que les parenthèses devaient aller quelque part, je ne pouvais tout simplement pas savoir où, lol
Gabriel Benamy
Huhu, difficile de se rappeler la priorité de chaque opérateur ( =~a une priorité plus élevée que x)!
Dada
5

Perl, 31 octets

say+($@="_|__"x17,"_|
__$@
")x5

Vous aurez besoin d'un -Edrapeau pour l'exécuter:

perl -E 'say+($@="_|__"x17,"_|
__$@
")x5'
Dada
la source
Pensée d'une approche légèrement différente pour 29 octets: say for("_|__"x175)=~/.{70}/g:). J'aime le truc que tu as employé là!
Dom Hastings
@DomHastings huhu, j'ai écrit exactement le même code dans les commentaires de la réponse de Gabriel Benamy!
Dada
D'oh! Je n'ai pas vu celui-là! Aussi puis vu cela a été beaucoup utilisé dans d'autres réponses .. Oh bien!
Dom Hastings
@DomHastings Oui, je n'y avais pas pensé au début, et c'était déjà dans la réponse de Gabriel, c'est pourquoi je n'ai pas mis à jour ma réponse après;)
Dada
5

V , 24 , 16 octets

175i_|__ò70|lé

Essayez-le en ligne! Cela contient des <esc>caractères ( 0x1B) alors voici un hexdump:

0000000: 3137 3569 5f7c 5f5f 1bf2 3730 7c6c e90a  175i_|__..70|l..

8 octets sauvés indirectement grâce à Jordan!

DJMcMayhem
la source
19 octets: v.tryitonline.net/… Je ne savais pas comment utiliser le .\{-}raccourci mentionné dans les documents V , cependant.
Jordanie
@ Jordan Wow, très gentil! De \{-}toute façon, le raccourci ne fonctionnerait pas, car vous ne pouvez pas changer le numéro à l'intérieur. Cependant, vous pouvez définir le bit le plus élevé \{pour obtenir ceci à la place. N'hésitez pas à poster cela comme réponse.
DJMcMayhem
Ah, c'est logique. Publié ici: codegolf.stackexchange.com/a/99070/11261
Jordanie
Zut j'ai encore besoin de parler cette langue: 25 octets
statox
5

V , 18 octets

-1 octet grâce à DJMcMayhem.

175i_|__<Esc>Ó.û70}/°ò

La voici avec des caractères non imprimables au format xxd:

0000000: 3137 3569 5f7c 5f5f 1bd3 2efb 3730 7d2f  175i_|__....70}/
0000010: b0f2                                     ..

Essayez-le en ligne!

Jordan
la source
Sympa, je ne suis plus la seule personne à avoir utilisé V! Maintenant, je vais devoir voir si je peux reprendre la tête, haha
DJMcMayhem
5

MATL, 15 octets

'_|__'700:)70e!

Bien sûr, vous pouvez l' essayer en ligne! Explication:

'_|__' % Put a brick on the stack
700    % 700 times
:)     % Makes a happy mason...
70e!   % Secret freemason code

OK, en fait, cela fonctionne comme suit:

'_|__' % Put the first bit of the string on the stack
700:   % Put 1, 2, ..., 700 on the stack as array
)      % Index into the string, modularly. Result: '_|___|__ ... __'
70e    % Reshape into 70 rows (and consequently, 10 columns)
!      % Transpose to get the desired output.
Sanchises
la source
Bien joué! Et ton smiley est meilleur que le mien
Luis Mendo
@ LuisMendo Vraiment, utiliser des smileys pourrait être considéré comme un motif de conception dans MATL. xD Peut-être que vous pourriez avoir :)sur C... mais ce serait votre dernier point de code à un octet parti (ou y a-t-il une autre raison qui Cn'est pas utilisée?)
Sanchises
Vous voulez vous débarrasser du smiley? :-P
Luis Mendo
5

Python 2, 46 44 octets

Juste en utilisant la multiplication de chaîne pour construire la chaîne et en découpant pour obtenir les bons bits :)

k='_|__'*18
print'\n'.join([k[:70],k[2:]]*5)

merci à Antony Hatchkins pour avoir économisé deux octets :)

Kade
la source
Pourrait être moins de 2 octets:print'\n'.join([k[:70],k[2:]]*5)
Antony Hatchkins
@AntonyHatchkins Merci!
Kade
4

PowerShell v2 +, 34 à 30 octets

'_|__'*175-split"(.{70})"-ne''

Stupide algorithme de correspondance regex nécessitant le -ne''... gaspille cinq octets!

'_|__'*175-split"(.{70})"-ne''
'_|__'*175                     # Repeat this string 175 times
          -split"       "      # Split on this regex pattern:
                  .{70}        # Match any character 70 times
                 (     )       # Encapsulated in parens so we keep the regex results
                         -ne'' # But don't select the empty strings
                               # Output with newlines via Write-Output is implicit

Sauvegardé 4 octets grâce à Conor!

AdmBorkBork
la source
Serait- .{70}il plus court pour le regex?
Conor O'Brien
splitfonctionne comme ça dans d’autres langues - vous obtenez toujours les portions incomparables, que vous en vouliez ou non. Certaines langues ont un matchopérateur qui peut être utilisé pour renvoyer un tableau de résultats correspondants uniquement, mais je ne vois pas d'équivalent PowerShell pour cela.
Neil
@Neil Performing 'abc'-split'(.)'reviendra ('','a','','b','','c',''). Il n'y a rien d'inégalé, mais en raison de la façon dont l'algorithme traite la chaîne d'entrée, vous obtenez des chaînes vides. Voir ici .
AdmBorkBork
Oui, et je dis que vous ne devriez pas être surpris par ce résultat, car c'est ce que la scission est censée faire.
Neil
@ Neil surpris? Non, pas vraiment. Cela ne veut pas dire que je dois en être heureux, cependant. : D
AdmBorkBork
4

C, 131 115 113 103 97 95 octets

i,j;main(){for(;i<10;puts(i++&1?"|__":"|"))for(j=0;j<18-(i&1);printf(&"|___"[j++?0:i&1?1:3]));}

Il est temps de commencer à jouer au golf ...

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
cleblanc
la source
3

Gelée , 14 octets

“_|__”ṁ700s70Y

TryItOnline!

Comment?

“_|__”ṁ700s70Y - Main link: no arguments
“_|__”         - literal ['_','|','_','_']
      ṁ700     - mould like something 700 long
          s70  - split into chunks of length 70
             Y - join with line feeds
Jonathan Allan
la source
1
Par définition, Jelly ne peut pas être plus long que J.
Adám
J'ai fait quelque chose de similaire sans le particulier : “_|__”ẋ175œs⁵Y(14 octets)
Erik the Outgolfer
3

MATL , 16 octets

'___|'10:E!70:+)

Essayez-le en ligne!

'___|'   % Push this string
10:E!    % Push [2; 4; 6; ...; 20] (10×1 column vector)
70:      % Push [1, 2, 3, ..., 70] (1×70 row vector)
+        % Add. Gives a 10×70 matrix of all pairwise additions
)        % Index (modular, 1-based) into the string
Luis Mendo
la source
Vous battre avec un octet entier: codegolf.stackexchange.com/a/99073/32352
Sanchises
3

CJam , 15 octets

"_|__"175*70/N*

Essayez-le en ligne!

Réponse 05AB1E du port d' Adnan .

"_|__"             e# Push this string
      175*         e# Repeat 175 times
          70/      e# Split in pieces of size 70
             N*    e# Join by newlines
Luis Mendo
la source
3

Javascript REPL, 45 octets

"_|__".repeat(175).match(/.{70}/g).join("\n")
Juan Tonina
la source
1
Bienvenue chez PPCG! Cela doit être marqué comme "JavaScript REPL" ou similaire, car cela n'imprime rien du tout en dehors d'un environnement de console interactive.
Martin Ender
1
N'est-ce pas 45 octets?
acrolithe
@daHugLenny vous avez raison, je comptais comme un seul octet
Juan Tonina
où est la console.log?
Cardeol
1
Tant que vous utilisez ES6 (je pense que c'est le cas), vous pouvez utiliser des chaînes de modèle. Ainsi, join("\n")rejoignez <backtick> <newline littéral> <backtick>
Stephen
3

JavaScript (ES6), 48 octets

f=(n=350)=>n?(n%35?'_':`
_`)+"|_"[n%2]+f(n-1):""

Parce que la récursivité.

ETHproductions
la source
3

Bash, 44, 41 , 40 octets

printf _\|__%.0s {1..175}|egrep -o .{70}

Le printf fait une seule ligne de 700 caractères, l'egrep lui correspond de 70 caractères à la fois.

Rjmunro
la source
2

///, 51 octets

Si un retour à la ligne est autorisé:

/e/aaaa//a/_|__//b/eeeea_|//c/__eeeea//d/b
c
/ddddd

Essayez-le en ligne!

acrolithe
la source
2

Pyke, 12 octets

w�"_|__"*TfX

est l'octet littéral 163.

Essayez-le ici! ( w�remplacé par littéral)

Bleu
la source
2

Ruby, 30 octets

Merci à manatwork pour cette solution

puts ("_|__"*175).scan /.{70}/

Ruby, 39 octets

10.times{|i|puts ("_|__"*18)[i%2*2,70]}
Level River St
la source
2
L'approche generate-tout alors-split est plus court ici aussi: puts ("_|__"*175).scan /.{70}/.
manatwork
@manatwork merci beaucoup! Je pense rarement à utiliser, scancar je ne suis pas à l'aise avec les regex. Vous savez que vous auriez pu écrire cela comme réponse personnelle ...
Level River St
2

Haskell, 56 47 octets

unlines$[1..5]>>take 70.cycle<$>["_|__","___|"]
Angs
la source