Aujourd'hui, le 11 Novembre, est connu comme le jour du Souvenir , jour de l' Armistice , ou Journée des anciens combattants (selon les pays), et une journée de réflexion et de reconnaissance pour les membres des forces armées et leur service, plus précisément commencé à tenir compte de la fin des hostilités européennes pendant la première guerre mondiale. Réfléchissons à cela avec une simple sortie ASCII de 11/11
.
Étant donné une entrée n
, sortez un rendu ASCII-art de ce 11/11
qui est des n
unités de haut. Plus précisément, chacun 1
est composé de tuyaux verticaux ||
, la barre oblique est composée de barres obliques //
et chaque caractère est séparé de deux espaces. Notez que cela signifie des largeurs de sortie variables - par exemple, pour n=3
ci-dessous, voyez comment le "bas" de la barre oblique est de deux espaces de la 1
gauche, mais de quatre espaces de la 1
droite, de sorte que le haut de la barre oblique s'aligne correctement et se trouve à deux espaces de la 1
droite.
n = 1
|| || // || ||
n = 2
|| || // || ||
|| || // || ||
n = 3
|| || // || ||
|| || // || ||
|| || // || ||
n = 4
|| || // || ||
|| || // || ||
|| || // || ||
|| || // || ||
n = 5
|| || // || ||
|| || // || ||
|| || // || ||
|| || // || ||
|| || // || ||
etc.
Contribution
Un entier positif unique dans un format pratique , n > 0
.
Sortie
Une représentation ASCII de 11/11
, suivant les règles et exemples ci-dessus. Les sauts de ligne de début / fin ou d'autres espaces sont facultatifs, à condition que les caractères s'alignent correctement.
Règles
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
$'
et le$`
dans l'expression rationnelle? Je n'avais jamais vu ça auparavant et j'aimerais mieux le comprendre.$&
serait la correspondance elle-même).05AB1E , 24 octets
Essayez-le en ligne!
Explication
Version précédente de 26 octets
Essayez-le en ligne!
la source
" "×"//"«.s¦R"|| || "s«vyû}»
, il s'avère que palendromize n'est pas un bon ajustement, pour des raisons plus évidentes maintenant ... et vous battez mon bytecount plus vite de toute façon heh.Perl, 45 octets
-9 octets grâce à @Gabriel Benamy
47 octets de code + 1 octet pour l'
-n
indicateur.Courez avec des
-nE
drapeaux:la source
"|| ||"
en"|| "x2
puis en devenant(2+$_)
juste$_
+( .. )
la$@
tâche. Cela fonctionne au moins sur mon ordinateur.+( .. )
, merci. Cependant, je ne peux pas passer"|| ||"
à"|| "x2
car j'ai besoin de deux espaces entre les||
."|| "
a deux espaces après les tuyaux (c'est juste qu'il ne s'affiche pas correctement ici pour une raison quelconque), et vous dupliquez cette chaîne dans"|| || "
laquelle prend soin des 2 espaces supplémentaires de$"x(2+$_)
||
quand il y en avait deux.JavaScript (ES6),
8877 octetsThe recursive approach
may not becould not possibly be the shortest..map
version (88 bytes):Array comprehension (86 bytes):
for
loop version (89 bytes):.replace
version (85 bytes):la source
Retina, 29 bytes
Port of my JavaScript solution. Note the space after
$*
and two spaces after||
.la source
V, 30 bytes
Try it online!
As usual, here is a hexdump:
la source
5i|| <esc>3b2r/
. You'll be at a slightly different place though, and I can't read V so I'm not sure if that matters.Batch, 130 bytes
Not a port of my JavaScript solution. Since
|
s are hard to manipulate in Batch, I usex
s as placeholders and replace them on output, this conveniently also reduces my code size. Starts by settings
to the desired output forn=1
(n
is passed on the command line), then inserts spaces as necessary to obtain the first line for the actual value ofn
, then loops through printing the string and shifting the slash left by one character each time.la source
BaCon, 71 bytes
A complete BASIC program in one line.
la source
1 TO
?Common Lisp, 216 bytes
I'm going to state right off the bat that this is an awful solution to the challenge. Nevertheless, it works, and I'm tired.
Usage:
For some reason, instead of doing anything sane, I decided to approach this with a loop inside a
format
call. This loop iterates through the contents returned by the other actual loop construct at the very end, with the last six elements removed (thus the repeatedbutlast
s). The contents of the value returned by this loop construct consist of a padding count for the front of the slashes, the padding characters (spaces), the padding count for the back of the slashes, and finally the same padding characters.I'm rather new to Lisp, and I understand that there is definitely a lot of room for improvement here.
la source
Python 2,
767571 BytesStill working on a shorter version, not too bad though.
thanks mbomb007 for catching an error!
la source
x='|| '*2;print x+(n-i)*' '+'//'+' '*i+x[::-1]
//
on the last row and two spaces after//
on the first row. It should be two spaces in both cases.R, 86 bytes
Just a simple
for
loop approach:la source
Retina, 40 bytes
Try it online!
Explanation
This turns the input
N
intoWhere
S
corresponds toN
spaces.There are two things happening here.
;{:
indicates that this stage and the last one should be run in a loop until they fail to change the string.:
indicates that the result of this stage should be printed after each iteration and;
indicates that the final result of the loop (and therefore of the entire program) should not be printed. The stage itself just replaces thex
s with|| ||
on the first iteration (and does nothing afterwards), so that we now have the first line of the required output (and print it).Finally, this shifts the
//
one character to the left, provided there are still at least three spaces left of the//
. Afterwards we return to the previous stage (which now only prints the current line, since there are no morex
s) and then repeat.la source
Ruby, 60 bytes
la source
C,
116 9489 bytesTry it out on Ideone
la source
Ruby,
767473 bytesAs a function it takes
7372 bytes, counting the definition:la source
Powershell, 66 bytes
la source
read-host
--param($a)1..$a|%{$s="|| ";$s*2+" "*($a-$_)+"// "+" "*$_+$s*2}
C#, 150 Bytes
Golfed:
Ungolfed:
Testing:
Output:
la source
Groovy, 63 chars/bytes
Here's my attempt with Groovy, using an anonymous closure and simple loops to print the ASCII art to standard output:
{n->n.times{println'|| '*2+' '*(n-it-1)+'//'+' '*it+' ||'*2}}
You can try it online here. Just click "Edit in console" and then "Execute script".
Trying to do the same and returning a string instead of printing, I couldn't get below 71 bytes:
{n->a='';n.times{a+='|| '*2+' '*(n-it-1)+'//'+' '*it+' ||'*2+'\n'};a}
la source
Python 3, 78 bytes
Still trying to shorten...
la source
for
onto the same line asdef
? (Like this:def m(n):for e in range(n):print(a," "*(n-e),"//"," "*(e+1),a)
) Also, you can save two bytes by replacing(e+1)
with-~e
.