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!



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


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⍴'_|__'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

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.


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!


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.


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


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  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"

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 .


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("_|__"))

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!


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);'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

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!


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

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'

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!


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!


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.

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 :)


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!


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 ...

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

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

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

Javascript REPL, 45 octets

"_|__".repeat(175).match(/.{70}/g).join("\n")

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é.


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.





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]}

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<$>["_|__","___|"]
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.