Stars Make Stars Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern) The PPCG Site design is on its way - help us make it awesome! Sandbox for Proposed ChallengesRotate an ASCII art imageAnti-aliasing ASCII artDraw a tiled cube of any sizeStar programming!Emulate a 7-segment displayASCII ART edge detectionThe Letter E with EArmistice Day ChallengeRead ASCII-Art TextDraw some ASCII stars

Do I really need to have a message in a novel to appeal to readers?

Is it possible for SQL statements to execute concurrently within a single session in SQL Server?

Is it fair for a professor to grade us on the possession of past papers?

Should I use a zero-interest credit card for a large one-time purchase?

Question about debouncing - delay of state change

How to react to hostile behavior from a senior developer?

Is grep documentation about ignoring case wrong, since it doesn't ignore case in filenames?

How to write the following sign?

Illegal assignment from sObject to Id

Do wooden building fires get hotter than 600°C?

Why do we bend a book to keep it straight?

Sum letters are not two different

Is there hard evidence that the grant peer review system performs significantly better than random?

If Windows 7 doesn't support WSL, then what does Linux subsystem option mean?

Using audio cues to encourage good posture

Chinese Seal on silk painting - what does it mean?

Generate an RGB colour grid

Take 2! Is this homebrew Lady of Pain warlock patron balanced?

Significance of Cersei's obsession with elephants?

Why do we need to use the builder design pattern when we can do the same thing with setters?

Maximum summed subsequences with non-adjacent items

Central Vacuuming: Is it worth it, and how does it compare to normal vacuuming?

How could we fake a moon landing now?

Performance gap between vector<bool> and array



Stars Make Stars



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)
The PPCG Site design is on its way - help us make it awesome!
Sandbox for Proposed ChallengesRotate an ASCII art imageAnti-aliasing ASCII artDraw a tiled cube of any sizeStar programming!Emulate a 7-segment displayASCII ART edge detectionThe Letter E with EArmistice Day ChallengeRead ASCII-Art TextDraw some ASCII stars










18












$begingroup$


Introduction



The idea is to use the asterisk character (star) * to display an ascii-art star at a specified dimension. The dimension is an input number greater than or equal to $1$ that specifies the height in lines of the upper point of the star. The stars here are intended to be six pointed stars with larger sizes looking better from a picture perspective.



In all cases the ascii-art representation of the stars are to appear as two triangles that overlap as shown in the following examples.



Parametrics



The following picture and table of data describes attributes for the first seven sizes of the star. Each of the parameters grows in an arithmetic progression as $N$ increases, except $N=1$ is different.



enter image description here



enter image description here



Examples



For an input of 1 (the degenerate case) the program output should be as follows:



 *
*****
*****
*


Input of 2:



 *
***
*********
*******
*********
***
*


(3)



 *
***
*****
***************
*************
***********
*************
***************
*****
***
*


(5)



 *
***
*****
*******
*********
***************************
*************************
***********************
*********************
*******************
*********************
***********************
*************************
***************************
*********
*******
*****
***
*


Challenge



Your task is to create a function or program that will accept the number N as input and then output the appropriately sized star using just characters and the * character.



  • You may assume that the input value is always a positive integer.

  • Trailing whitespace on the output lines is OK.

  • The program algorithm should be general enough for any $N$ input to produce the star art
    output. Practical limitations exist of course due to display output
    size.

  • Output should print to STDOUT.


  • Standard loopholes are forbidden.

  • This is code-golf so all usual golfing rules apply.

Scoring



This is code-golf so the code with the shortest number of bytes wins!










share|improve this question









New contributor




Michael Karas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$







  • 4




    $begingroup$
    You also say it can be a function but it must "print to STDOUT". Is this intentional?
    $endgroup$
    – Sriotchilism O'Zaic
    Apr 14 at 14:55






  • 5




    $begingroup$
    Yep, a general construction rule would be great... for instance I'm not sure about even inputs, like N = 4...
    $endgroup$
    – digEmAll
    Apr 14 at 15:12






  • 7




    $begingroup$
    Please don't say "The algorithm to produce the stars is part of the programming challenge." This is not something most golfers enjoy when doing an ASCII art challenge, and sounds like an attempt to pawn off something that's the specifiers responsibility. That said, I'm surprised people are unclear on the construction here; it's two triangles overlapped like the challenge says. Would it help to explicitly say the size and offset of the triangles?
    $endgroup$
    – xnor
    Apr 14 at 15:30







  • 9




    $begingroup$
    @TimPederick Good catch about N=1 being different. I put in a note so solvers don't miss this. I think the challenge would be better without this special case though.
    $endgroup$
    – xnor
    Apr 14 at 15:50






  • 4




    $begingroup$
    @xnor: since n=1 was different, I could't infer a general rule...and IMO the rule should always be specified for ASCII art, otherwise I'm well allowed to print whatever I want outside the range of the defined examples ;)
    $endgroup$
    – digEmAll
    Apr 14 at 16:18















18












$begingroup$


Introduction



The idea is to use the asterisk character (star) * to display an ascii-art star at a specified dimension. The dimension is an input number greater than or equal to $1$ that specifies the height in lines of the upper point of the star. The stars here are intended to be six pointed stars with larger sizes looking better from a picture perspective.



In all cases the ascii-art representation of the stars are to appear as two triangles that overlap as shown in the following examples.



Parametrics



The following picture and table of data describes attributes for the first seven sizes of the star. Each of the parameters grows in an arithmetic progression as $N$ increases, except $N=1$ is different.



enter image description here



enter image description here



Examples



For an input of 1 (the degenerate case) the program output should be as follows:



 *
*****
*****
*


Input of 2:



 *
***
*********
*******
*********
***
*


(3)



 *
***
*****
***************
*************
***********
*************
***************
*****
***
*


(5)



 *
***
*****
*******
*********
***************************
*************************
***********************
*********************
*******************
*********************
***********************
*************************
***************************
*********
*******
*****
***
*


Challenge



Your task is to create a function or program that will accept the number N as input and then output the appropriately sized star using just characters and the * character.



  • You may assume that the input value is always a positive integer.

  • Trailing whitespace on the output lines is OK.

  • The program algorithm should be general enough for any $N$ input to produce the star art
    output. Practical limitations exist of course due to display output
    size.

  • Output should print to STDOUT.


  • Standard loopholes are forbidden.

  • This is code-golf so all usual golfing rules apply.

Scoring



This is code-golf so the code with the shortest number of bytes wins!










share|improve this question









New contributor




Michael Karas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$







  • 4




    $begingroup$
    You also say it can be a function but it must "print to STDOUT". Is this intentional?
    $endgroup$
    – Sriotchilism O'Zaic
    Apr 14 at 14:55






  • 5




    $begingroup$
    Yep, a general construction rule would be great... for instance I'm not sure about even inputs, like N = 4...
    $endgroup$
    – digEmAll
    Apr 14 at 15:12






  • 7




    $begingroup$
    Please don't say "The algorithm to produce the stars is part of the programming challenge." This is not something most golfers enjoy when doing an ASCII art challenge, and sounds like an attempt to pawn off something that's the specifiers responsibility. That said, I'm surprised people are unclear on the construction here; it's two triangles overlapped like the challenge says. Would it help to explicitly say the size and offset of the triangles?
    $endgroup$
    – xnor
    Apr 14 at 15:30







  • 9




    $begingroup$
    @TimPederick Good catch about N=1 being different. I put in a note so solvers don't miss this. I think the challenge would be better without this special case though.
    $endgroup$
    – xnor
    Apr 14 at 15:50






  • 4




    $begingroup$
    @xnor: since n=1 was different, I could't infer a general rule...and IMO the rule should always be specified for ASCII art, otherwise I'm well allowed to print whatever I want outside the range of the defined examples ;)
    $endgroup$
    – digEmAll
    Apr 14 at 16:18













18












18








18


1



$begingroup$


Introduction



The idea is to use the asterisk character (star) * to display an ascii-art star at a specified dimension. The dimension is an input number greater than or equal to $1$ that specifies the height in lines of the upper point of the star. The stars here are intended to be six pointed stars with larger sizes looking better from a picture perspective.



In all cases the ascii-art representation of the stars are to appear as two triangles that overlap as shown in the following examples.



Parametrics



The following picture and table of data describes attributes for the first seven sizes of the star. Each of the parameters grows in an arithmetic progression as $N$ increases, except $N=1$ is different.



enter image description here



enter image description here



Examples



For an input of 1 (the degenerate case) the program output should be as follows:



 *
*****
*****
*


Input of 2:



 *
***
*********
*******
*********
***
*


(3)



 *
***
*****
***************
*************
***********
*************
***************
*****
***
*


(5)



 *
***
*****
*******
*********
***************************
*************************
***********************
*********************
*******************
*********************
***********************
*************************
***************************
*********
*******
*****
***
*


Challenge



Your task is to create a function or program that will accept the number N as input and then output the appropriately sized star using just characters and the * character.



  • You may assume that the input value is always a positive integer.

  • Trailing whitespace on the output lines is OK.

  • The program algorithm should be general enough for any $N$ input to produce the star art
    output. Practical limitations exist of course due to display output
    size.

  • Output should print to STDOUT.


  • Standard loopholes are forbidden.

  • This is code-golf so all usual golfing rules apply.

Scoring



This is code-golf so the code with the shortest number of bytes wins!










share|improve this question









New contributor




Michael Karas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$




Introduction



The idea is to use the asterisk character (star) * to display an ascii-art star at a specified dimension. The dimension is an input number greater than or equal to $1$ that specifies the height in lines of the upper point of the star. The stars here are intended to be six pointed stars with larger sizes looking better from a picture perspective.



In all cases the ascii-art representation of the stars are to appear as two triangles that overlap as shown in the following examples.



Parametrics



The following picture and table of data describes attributes for the first seven sizes of the star. Each of the parameters grows in an arithmetic progression as $N$ increases, except $N=1$ is different.



enter image description here



enter image description here



Examples



For an input of 1 (the degenerate case) the program output should be as follows:



 *
*****
*****
*


Input of 2:



 *
***
*********
*******
*********
***
*


(3)



 *
***
*****
***************
*************
***********
*************
***************
*****
***
*


(5)



 *
***
*****
*******
*********
***************************
*************************
***********************
*********************
*******************
*********************
***********************
*************************
***************************
*********
*******
*****
***
*


Challenge



Your task is to create a function or program that will accept the number N as input and then output the appropriately sized star using just characters and the * character.



  • You may assume that the input value is always a positive integer.

  • Trailing whitespace on the output lines is OK.

  • The program algorithm should be general enough for any $N$ input to produce the star art
    output. Practical limitations exist of course due to display output
    size.

  • Output should print to STDOUT.


  • Standard loopholes are forbidden.

  • This is code-golf so all usual golfing rules apply.

Scoring



This is code-golf so the code with the shortest number of bytes wins!







code-golf ascii-art






share|improve this question









New contributor




Michael Karas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Michael Karas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Apr 14 at 19:55







Michael Karas













New contributor




Michael Karas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Apr 14 at 14:49









Michael KarasMichael Karas

1978




1978




New contributor




Michael Karas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Michael Karas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Michael Karas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 4




    $begingroup$
    You also say it can be a function but it must "print to STDOUT". Is this intentional?
    $endgroup$
    – Sriotchilism O'Zaic
    Apr 14 at 14:55






  • 5




    $begingroup$
    Yep, a general construction rule would be great... for instance I'm not sure about even inputs, like N = 4...
    $endgroup$
    – digEmAll
    Apr 14 at 15:12






  • 7




    $begingroup$
    Please don't say "The algorithm to produce the stars is part of the programming challenge." This is not something most golfers enjoy when doing an ASCII art challenge, and sounds like an attempt to pawn off something that's the specifiers responsibility. That said, I'm surprised people are unclear on the construction here; it's two triangles overlapped like the challenge says. Would it help to explicitly say the size and offset of the triangles?
    $endgroup$
    – xnor
    Apr 14 at 15:30







  • 9




    $begingroup$
    @TimPederick Good catch about N=1 being different. I put in a note so solvers don't miss this. I think the challenge would be better without this special case though.
    $endgroup$
    – xnor
    Apr 14 at 15:50






  • 4




    $begingroup$
    @xnor: since n=1 was different, I could't infer a general rule...and IMO the rule should always be specified for ASCII art, otherwise I'm well allowed to print whatever I want outside the range of the defined examples ;)
    $endgroup$
    – digEmAll
    Apr 14 at 16:18












  • 4




    $begingroup$
    You also say it can be a function but it must "print to STDOUT". Is this intentional?
    $endgroup$
    – Sriotchilism O'Zaic
    Apr 14 at 14:55






  • 5




    $begingroup$
    Yep, a general construction rule would be great... for instance I'm not sure about even inputs, like N = 4...
    $endgroup$
    – digEmAll
    Apr 14 at 15:12






  • 7




    $begingroup$
    Please don't say "The algorithm to produce the stars is part of the programming challenge." This is not something most golfers enjoy when doing an ASCII art challenge, and sounds like an attempt to pawn off something that's the specifiers responsibility. That said, I'm surprised people are unclear on the construction here; it's two triangles overlapped like the challenge says. Would it help to explicitly say the size and offset of the triangles?
    $endgroup$
    – xnor
    Apr 14 at 15:30







  • 9




    $begingroup$
    @TimPederick Good catch about N=1 being different. I put in a note so solvers don't miss this. I think the challenge would be better without this special case though.
    $endgroup$
    – xnor
    Apr 14 at 15:50






  • 4




    $begingroup$
    @xnor: since n=1 was different, I could't infer a general rule...and IMO the rule should always be specified for ASCII art, otherwise I'm well allowed to print whatever I want outside the range of the defined examples ;)
    $endgroup$
    – digEmAll
    Apr 14 at 16:18







4




4




$begingroup$
You also say it can be a function but it must "print to STDOUT". Is this intentional?
$endgroup$
– Sriotchilism O'Zaic
Apr 14 at 14:55




$begingroup$
You also say it can be a function but it must "print to STDOUT". Is this intentional?
$endgroup$
– Sriotchilism O'Zaic
Apr 14 at 14:55




5




5




$begingroup$
Yep, a general construction rule would be great... for instance I'm not sure about even inputs, like N = 4...
$endgroup$
– digEmAll
Apr 14 at 15:12




$begingroup$
Yep, a general construction rule would be great... for instance I'm not sure about even inputs, like N = 4...
$endgroup$
– digEmAll
Apr 14 at 15:12




7




7




$begingroup$
Please don't say "The algorithm to produce the stars is part of the programming challenge." This is not something most golfers enjoy when doing an ASCII art challenge, and sounds like an attempt to pawn off something that's the specifiers responsibility. That said, I'm surprised people are unclear on the construction here; it's two triangles overlapped like the challenge says. Would it help to explicitly say the size and offset of the triangles?
$endgroup$
– xnor
Apr 14 at 15:30





$begingroup$
Please don't say "The algorithm to produce the stars is part of the programming challenge." This is not something most golfers enjoy when doing an ASCII art challenge, and sounds like an attempt to pawn off something that's the specifiers responsibility. That said, I'm surprised people are unclear on the construction here; it's two triangles overlapped like the challenge says. Would it help to explicitly say the size and offset of the triangles?
$endgroup$
– xnor
Apr 14 at 15:30





9




9




$begingroup$
@TimPederick Good catch about N=1 being different. I put in a note so solvers don't miss this. I think the challenge would be better without this special case though.
$endgroup$
– xnor
Apr 14 at 15:50




$begingroup$
@TimPederick Good catch about N=1 being different. I put in a note so solvers don't miss this. I think the challenge would be better without this special case though.
$endgroup$
– xnor
Apr 14 at 15:50




4




4




$begingroup$
@xnor: since n=1 was different, I could't infer a general rule...and IMO the rule should always be specified for ASCII art, otherwise I'm well allowed to print whatever I want outside the range of the defined examples ;)
$endgroup$
– digEmAll
Apr 14 at 16:18




$begingroup$
@xnor: since n=1 was different, I could't infer a general rule...and IMO the rule should always be specified for ASCII art, otherwise I'm well allowed to print whatever I want outside the range of the defined examples ;)
$endgroup$
– digEmAll
Apr 14 at 16:18










13 Answers
13






active

oldest

votes


















7












$begingroup$


05AB1E, 21 bytes



3*s≠-L·<sÅ0«Âø€à'*×.C


Try it online!
or as a Test Suite



Explanation



3* # multiply input by 3
s≠- # subtract 1 if the input isn't 1
L # push range [1 ... (3*n-(n!=1))]
·< # multiply by 2 and subtract 1 to get odd numbers
sÅ0« # append n zeroes
Âø # zip with a reversed copy
ۈ # get the largest number in each pair
'*× # repeat "*" for each number in the list
.C # format centered





share|improve this answer











$endgroup$








  • 1




    $begingroup$
    Your output stars look correct.
    $endgroup$
    – Michael Karas
    Apr 14 at 16:08






  • 1




    $begingroup$
    I can find loads of alternatives for 3*s≠-L·< like 6*s≠·-ÅÉ or ≠3/-6*ÅÉ, but unfortunately none are shorter.. Nice answer, as always! :)
    $endgroup$
    – Kevin Cruijssen
    Apr 14 at 17:47


















7












$begingroup$


Haskell, 114 bytes



Builds a function g which takes an number and produces a IO monad that prints the star to STDOUT. I think this is ok.





f=replicate
a%b=mapM_(n->putStrLn$f(a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..a]++f b 0
g 1=4%1
g a=(3*a)%a


Try it online!



Explanation



First lets talk about the lambda.



n->putStrLn$f(a-n)' '++f(2*n-1)'*'


This takes a number, n, to be drawn as stars. We print twice that many stars and then 1 more and pad it on the right to the size of the image. We pad this on the right by a spaces to center the line of stars. We can use this lambda to draw each line.



From this lambda we create (%). (%) starts with doing mapM_ with our lambda to turn a profile into the shape.



Now all we need to do is make a list of the profile for the star. We can do this by making a triangle first with [1..a], then padding it with some zeros ++replicate b 0. If we take the profile of the triangle and reverse it we get the other half of the star. To super impose them we just make a new profile where each entry is the max of the two triangles. This is zipWith max.



We then call this in one of two ways: as 3%1 for input of 1 and with (3*a-1)%a otherwise.



From here we do a little bit of fiddling with some of the values to shave some bytes. Since 3*a-1 is rather long we offset some of our other values by 1 so that everything cancels and we get the intended behavior with 3*a instead. Namely we start our list at 2 instead of 1 and do 2*n-3 instead of 2*n-1 to make up for the change.



Alternative version, 114 bytes



This one builds a point-free function (%)<*>min 2



f=replicate
a%b=mapM_(n->putStrLn$f(3*a-n)' '++f(2*(n-b)+1)'*')$zipWith max<*>reverse$[b..3*a]++f a 0
(%)<*>min 2


Try it online!



Handles all $N>1$, 98 bytes



f=replicate
g a=mapM_(n->putStrLn$f(3*a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..3*a]++f a 0


Try it online!



Handles all cases like the $N=1$ case, 98 bytes



f=replicate
g a=mapM_(n->putStrLn$f(3*a-n)' '++f(2*n-1)'*')$zipWith max<*>reverse$[1..3*a]++f a 0


Try it online!






share|improve this answer











$endgroup$












  • $begingroup$
    Your output looks nice now.
    $endgroup$
    – Michael Karas
    Apr 14 at 16:04


















6












$begingroup$


R, 125 117 107 bytes





function(n,S=3*n+!n-1,P=pmax(I<-c(2:S*2-3,!1:n),rev(I)),`~`=strrep)cat(paste0(' '~S-2-P%/%2,'*'~P),sep='
')


Try it online!



  • -18 thanks to @Giuseppe


Previous (different) approach :




R, 150 148 136 135 130 128 bytes





function(n,G=n<2,K=4*n-1+G)for(i in 1:K-1)cat(`[<-`(rep(' ',W<-3*n-2+G),1+W+c(-i:i*(i<K-n),-(j=K-i-1):j*(i>=n)),'*'),sep='','
')


Try it online!



  • -14 thanks to @Kirill L.

  • -1 thanks to @t-clausen.dk

  • -7 thanks to @Giuseppe





share|improve this answer











$endgroup$












  • $begingroup$
    Yeah, I also don't like those repeated S[]= assignments, and looks like this works
    $endgroup$
    – Kirill L.
    Apr 14 at 17:55










  • $begingroup$
    Great ! I was thinking to something like that... but I was having dinner :P
    $endgroup$
    – digEmAll
    Apr 14 at 18:08










  • $begingroup$
    Seems you can save a byte: i>n-1 can be rewritten to i>=n
    $endgroup$
    – t-clausen.dk
    Apr 15 at 12:36










  • $begingroup$
    @t-clausen.dk: yep, thanks!
    $endgroup$
    – digEmAll
    Apr 15 at 16:54






  • 1




    $begingroup$
    117 bytes on the newer version
    $endgroup$
    – Giuseppe
    2 days ago



















5












$begingroup$

JavaScript (ES8), 101 bytes





n=>(k=3*n+!~-n,g=y=>++y<k+n?`
`.padEnd(w=k-Math.max(y>n&&n-y+k,y<k&&y)).padEnd(2*k+~w,'*')+g(y):'')``


Try it online!






share|improve this answer









$endgroup$




















    5












    $begingroup$


    Python 2, 101 99 97 bytes





    n=input()
    x=2*(n>1)
    for i in range(1,8*n,2):print('*'*[i,8*n-i-x][i+x>n*6or i/n/2%2]).center(6*n)


    Try it online!



    -2 bytes, thanks to Lynn






    share|improve this answer











    $endgroup$












    • $begingroup$
      I'm reasonably sure you don't need the parens in the selector expression, so i+x>n*6or saves two bytes.
      $endgroup$
      – Lynn
      Apr 15 at 13:25










    • $begingroup$
      @Lynn Thanks :)
      $endgroup$
      – TFeld
      Apr 15 at 14:04










    • $begingroup$
      You can even go i+x>~i/n/2%2*6*n or something like i+x>3*n*(~i/n&2) (both 96 bytes.)
      $endgroup$
      – Lynn
      Apr 15 at 14:15


















    3












    $begingroup$


    Jelly, 21 bytes



    ×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY


    A full program accepting a positive integer which prints to STDOUT.



    Try it online! Or see a test-suite.



    How?



    ×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY - Main Link: integer, n e.g. 3
    3 - three 3
    × - multiply (n by) 9
    ’ - decrement 8
    Ị - insignificant (abs(n)<=1)? 0
    + - add 8
    R - range [1,2,3,4,5,6,7,8]
    Ṭ - un-truth (n) [0,0,1]
    ; - concatenate [1,2,3,4,5,6,7,8,0,0,1]
    $ - last two links as a monad:
    Ṛ - reverse [1,0,0,8,7,6,5,4,3,2,1]
    » - maximum (vectorises) [1,2,3,8,7,6,7,8,3,2,1]
    ”* - an asterisk character '*'
    ẋ - repeat (vectorises) ["*","**",...]
    ⁶ - a space character ' '
    z - transpose with filler ["***********"," ********* ",...]
    Ṛ - reverse [" * * "," ** ** ",...]
    Z - transpose [" *"," **",...]
    ŒB - bounce (vectorises) [" * "," *** ",...]
    Y - join with newline characters " * n *** n..."
    - implicit print





    share|improve this answer











    $endgroup$




















      2












      $begingroup$


      Canvas, 25 23 bytes



      R:{⁸3×4M∔]∔{*×]↔⁸1≡?╪]┼


      Try it here!



      15 bytes without handling 1






      share|improve this answer











      $endgroup$












      • $begingroup$
        Makes nice stars.
        $endgroup$
        – Michael Karas
        Apr 14 at 16:07


















      2












      $begingroup$


      Jelly, 21 bytes



      ×’»ɗ3”*xⱮz⁶ɓ⁶x;»Ṛ$ŒBY


      Try it online!



      A monadic link accepting a single integer as its left argument and returning a newline-separated Jelly string with the star as its output. When run as a full program implicitly prints the star to STDOUT.



      Explanation



       ɗ3 | Last three links as a dyad with 3 as right argument:
      × | Multiply (by 3)
      ’ | Decrease by 1
      » | Maximum of this (and 3)
      ”*xⱮ | An implicit range from 1 to this many asterisks
      z⁶ | Zip with space as filler
      ɓ | Start a new dyadic chain with the input as left argument and the list of asterisks as right argument
      ⁶x | Input many spaces
      ; | Concatenated to the asterisk list
      $ | Last two links as a monad:
      »Ṛ | Maximum of this list and its reverse
      ŒB | Bounce each list (i.e. mirror it without duplicating the middle entry)
      Y | Join with newlines





      share|improve this answer









      $endgroup$








      • 1




        $begingroup$
        I appreciate you writing the start the stylish way even though ×3’»3 is the same length ^_^
        $endgroup$
        – Lynn
        Apr 15 at 13:28






      • 1




        $begingroup$
        @Lynn at the point I did that I thought I was going to be using another quick to merge multiple links, and it meant that I could do so within the maximum 4 allowed. However, once I decided to use ɓ it didn’t matter but I kept it because I still liked it!
        $endgroup$
        – Nick Kennedy
        Apr 15 at 13:32


















      2












      $begingroup$


      Charcoal, 25 bytes



      G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*‖O¬C⁰¬⊖θ


      Try it online! Link is to verbose version of code. Explanation:



      G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*


      Draw an irregular pentagon representing the top right quarter of the star, but special-casing 1 to make the row an extra column wider.



      ‖O¬


      Reflect to complete the star.



      C⁰¬⊖θ


      More special-casing to make the star for 1 an extra row taller.



      Alternative solution, also 25 bytes:



      ∧¬⊖θ*G↗↓⊖׳N*‖O‖OO↓∧⊖θ⊖⊗θ


      Try it online! Link is to verbose version of code. Explanation:



      ∧¬⊖θ*


      Print an extra * for the case of 1.



      G↗↓⊖׳N*


      Draw the left half of a triangle of the appropriate size.



      ‖O


      Reflect to complete the triangle.



      ‖OO↓∧⊖θ⊖⊗θ


      Overlap it with its reflection, except in the case of 1, in which case just reflect it.



      14 bytes without special-casing for 1:



      G<⊖׳N*‖OO↑⊖⊗θ


      Try it online! Link is to verbose version of code. Explanation:



      G<⊖׳N*


      Draw a triangle of the appropriate size.



      ‖OO↑⊖⊗θ


      Overlap it with its reflection.






      share|improve this answer











      $endgroup$




















        2












        $begingroup$


        Perl 6, 74 bytes





        [R,] $_o.&


        Try it online!



        Literally creates a triangle with the right proportions and overlaps it with a upside-down copy using the string or operator (~|). Outputs as a list of lines with a leading and trailing line whitespace.



        Explanation:



         {.& # Anonymous code block
        ( )xx$_*3-($_>1) # Repeat n*3-(n!=1) times
        ' 'x--$+$_*3 # With a decreasing indentation
        ~'*'x$++*2+1 # Append an increasing triangle
        # This creates the triangle
        ,|($ xx$_) # And add some padding lines
        o # Pass the triangle to the combining function
        Z~| # Zip string bitwise or
        $_ # The list
        [R,] $_ # With its reverse





        share|improve this answer









        $endgroup$




















          2












          $begingroup$


          J, 53 50 bytes



          ' *'~[:(+..)"1*@<:>:/~@i.@-~3*]


          Try it online!



          ungolfed



          ' *' ~ [: (+. .)"1 *@<: >:/~@i.@-~ 3 * ]


          how



          Use a function table (like a 3rd grade times table) to construct half the triangle by using >: (greater than or equal) as the function. Then reverse each row, chop of the last column, and stitch the two sides together to get the full triangle (but made of 1 and 0). Add n rows of zeros at the bottom. Finally reverse the whole thing, and overlay it on the original, using boolean or +. to get the result. Then turn the 1 to * and 0 to spaces.






          share|improve this answer











          $endgroup$












          • $begingroup$
            Nice! Here's my solution - same length, different approach: Try it online!
            $endgroup$
            – Galen Ivanov
            2 days ago






          • 1




            $begingroup$
            Thanks. It sure feels like it could be golfed more, but I tried a handful of other approaches and wasn't able to do it.
            $endgroup$
            – Jonah
            2 days ago


















          2












          $begingroup$

          T-SQL, 194 bytes



          @ is the input value



          @c handles the width of the top triangle



          @d handles the width bottom triangle



          @e contains the output either @c or @d - this saves a few bytes



          @f handles the special case of 1 as input. @c*@=3 determines when to use @f. 5 bytes cheaper than writing @c=3and @=1



          DECLARE @ INT=8

          ,@c INT=1,@e INT=1,@d INT,@f INT=0SET @d=@*8-3r:PRINT
          space(@*3-@e/2+@f/2)+replicate('*',@e-@f)SELECT
          @c=nullif(@c,@*6-3)+2,@f=iif(@c*@=3,2,0),@d-=2-@f,@e=iif(@c>@d
          or @c/2<@,@c,@d)IF @d>0goto r


          Try it online






          share|improve this answer











          $endgroup$




















            1












            $begingroup$


            Japt -R, 25 bytes



            +5 bytes for n=1 :



            õ cUon3*U-´UÎ)®ç* êÃê!U û


            Try it



            õ cUon3*U-´UÎ)®ç* êÃê!U û :Implicit input of integer U
            õ :Range [1,U]
            c :Concatenate
            Uo : Range [0,U)
            n : Subtract each from
            3*U- : Multiply U by 3 and subtract
            ´U : Decrement U
            Î : Get sign
            ) :End concat
            ® :Map each Z
            ç* : Repeat "*" Z times
            ê : Palindromise
            Ã :End map
            ê!U :If decremented U is 0, append reverse, else, palindromise
            û :Centre pad each line with spaces to the length of the longest
            :Implicitly join with newlines and output





            share|improve this answer











            $endgroup$













              Your Answer






              StackExchange.ifUsing("editor", function ()
              StackExchange.using("externalEditor", function ()
              StackExchange.using("snippets", function ()
              StackExchange.snippets.init();
              );
              );
              , "code-snippets");

              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "200"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader:
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              ,
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );






              Michael Karas is a new contributor. Be nice, and check out our Code of Conduct.









              draft saved

              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f183174%2fstars-make-stars%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              13 Answers
              13






              active

              oldest

              votes








              13 Answers
              13






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              7












              $begingroup$


              05AB1E, 21 bytes



              3*s≠-L·<sÅ0«Âø€à'*×.C


              Try it online!
              or as a Test Suite



              Explanation



              3* # multiply input by 3
              s≠- # subtract 1 if the input isn't 1
              L # push range [1 ... (3*n-(n!=1))]
              ·< # multiply by 2 and subtract 1 to get odd numbers
              sÅ0« # append n zeroes
              Âø # zip with a reversed copy
              ۈ # get the largest number in each pair
              '*× # repeat "*" for each number in the list
              .C # format centered





              share|improve this answer











              $endgroup$








              • 1




                $begingroup$
                Your output stars look correct.
                $endgroup$
                – Michael Karas
                Apr 14 at 16:08






              • 1




                $begingroup$
                I can find loads of alternatives for 3*s≠-L·< like 6*s≠·-ÅÉ or ≠3/-6*ÅÉ, but unfortunately none are shorter.. Nice answer, as always! :)
                $endgroup$
                – Kevin Cruijssen
                Apr 14 at 17:47















              7












              $begingroup$


              05AB1E, 21 bytes



              3*s≠-L·<sÅ0«Âø€à'*×.C


              Try it online!
              or as a Test Suite



              Explanation



              3* # multiply input by 3
              s≠- # subtract 1 if the input isn't 1
              L # push range [1 ... (3*n-(n!=1))]
              ·< # multiply by 2 and subtract 1 to get odd numbers
              sÅ0« # append n zeroes
              Âø # zip with a reversed copy
              ۈ # get the largest number in each pair
              '*× # repeat "*" for each number in the list
              .C # format centered





              share|improve this answer











              $endgroup$








              • 1




                $begingroup$
                Your output stars look correct.
                $endgroup$
                – Michael Karas
                Apr 14 at 16:08






              • 1




                $begingroup$
                I can find loads of alternatives for 3*s≠-L·< like 6*s≠·-ÅÉ or ≠3/-6*ÅÉ, but unfortunately none are shorter.. Nice answer, as always! :)
                $endgroup$
                – Kevin Cruijssen
                Apr 14 at 17:47













              7












              7








              7





              $begingroup$


              05AB1E, 21 bytes



              3*s≠-L·<sÅ0«Âø€à'*×.C


              Try it online!
              or as a Test Suite



              Explanation



              3* # multiply input by 3
              s≠- # subtract 1 if the input isn't 1
              L # push range [1 ... (3*n-(n!=1))]
              ·< # multiply by 2 and subtract 1 to get odd numbers
              sÅ0« # append n zeroes
              Âø # zip with a reversed copy
              ۈ # get the largest number in each pair
              '*× # repeat "*" for each number in the list
              .C # format centered





              share|improve this answer











              $endgroup$




              05AB1E, 21 bytes



              3*s≠-L·<sÅ0«Âø€à'*×.C


              Try it online!
              or as a Test Suite



              Explanation



              3* # multiply input by 3
              s≠- # subtract 1 if the input isn't 1
              L # push range [1 ... (3*n-(n!=1))]
              ·< # multiply by 2 and subtract 1 to get odd numbers
              sÅ0« # append n zeroes
              Âø # zip with a reversed copy
              ۈ # get the largest number in each pair
              '*× # repeat "*" for each number in the list
              .C # format centered






              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited Apr 14 at 15:56

























              answered Apr 14 at 15:40









              EmignaEmigna

              48.2k434146




              48.2k434146







              • 1




                $begingroup$
                Your output stars look correct.
                $endgroup$
                – Michael Karas
                Apr 14 at 16:08






              • 1




                $begingroup$
                I can find loads of alternatives for 3*s≠-L·< like 6*s≠·-ÅÉ or ≠3/-6*ÅÉ, but unfortunately none are shorter.. Nice answer, as always! :)
                $endgroup$
                – Kevin Cruijssen
                Apr 14 at 17:47












              • 1




                $begingroup$
                Your output stars look correct.
                $endgroup$
                – Michael Karas
                Apr 14 at 16:08






              • 1




                $begingroup$
                I can find loads of alternatives for 3*s≠-L·< like 6*s≠·-ÅÉ or ≠3/-6*ÅÉ, but unfortunately none are shorter.. Nice answer, as always! :)
                $endgroup$
                – Kevin Cruijssen
                Apr 14 at 17:47







              1




              1




              $begingroup$
              Your output stars look correct.
              $endgroup$
              – Michael Karas
              Apr 14 at 16:08




              $begingroup$
              Your output stars look correct.
              $endgroup$
              – Michael Karas
              Apr 14 at 16:08




              1




              1




              $begingroup$
              I can find loads of alternatives for 3*s≠-L·< like 6*s≠·-ÅÉ or ≠3/-6*ÅÉ, but unfortunately none are shorter.. Nice answer, as always! :)
              $endgroup$
              – Kevin Cruijssen
              Apr 14 at 17:47




              $begingroup$
              I can find loads of alternatives for 3*s≠-L·< like 6*s≠·-ÅÉ or ≠3/-6*ÅÉ, but unfortunately none are shorter.. Nice answer, as always! :)
              $endgroup$
              – Kevin Cruijssen
              Apr 14 at 17:47











              7












              $begingroup$


              Haskell, 114 bytes



              Builds a function g which takes an number and produces a IO monad that prints the star to STDOUT. I think this is ok.





              f=replicate
              a%b=mapM_(n->putStrLn$f(a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..a]++f b 0
              g 1=4%1
              g a=(3*a)%a


              Try it online!



              Explanation



              First lets talk about the lambda.



              n->putStrLn$f(a-n)' '++f(2*n-1)'*'


              This takes a number, n, to be drawn as stars. We print twice that many stars and then 1 more and pad it on the right to the size of the image. We pad this on the right by a spaces to center the line of stars. We can use this lambda to draw each line.



              From this lambda we create (%). (%) starts with doing mapM_ with our lambda to turn a profile into the shape.



              Now all we need to do is make a list of the profile for the star. We can do this by making a triangle first with [1..a], then padding it with some zeros ++replicate b 0. If we take the profile of the triangle and reverse it we get the other half of the star. To super impose them we just make a new profile where each entry is the max of the two triangles. This is zipWith max.



              We then call this in one of two ways: as 3%1 for input of 1 and with (3*a-1)%a otherwise.



              From here we do a little bit of fiddling with some of the values to shave some bytes. Since 3*a-1 is rather long we offset some of our other values by 1 so that everything cancels and we get the intended behavior with 3*a instead. Namely we start our list at 2 instead of 1 and do 2*n-3 instead of 2*n-1 to make up for the change.



              Alternative version, 114 bytes



              This one builds a point-free function (%)<*>min 2



              f=replicate
              a%b=mapM_(n->putStrLn$f(3*a-n)' '++f(2*(n-b)+1)'*')$zipWith max<*>reverse$[b..3*a]++f a 0
              (%)<*>min 2


              Try it online!



              Handles all $N>1$, 98 bytes



              f=replicate
              g a=mapM_(n->putStrLn$f(3*a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..3*a]++f a 0


              Try it online!



              Handles all cases like the $N=1$ case, 98 bytes



              f=replicate
              g a=mapM_(n->putStrLn$f(3*a-n)' '++f(2*n-1)'*')$zipWith max<*>reverse$[1..3*a]++f a 0


              Try it online!






              share|improve this answer











              $endgroup$












              • $begingroup$
                Your output looks nice now.
                $endgroup$
                – Michael Karas
                Apr 14 at 16:04















              7












              $begingroup$


              Haskell, 114 bytes



              Builds a function g which takes an number and produces a IO monad that prints the star to STDOUT. I think this is ok.





              f=replicate
              a%b=mapM_(n->putStrLn$f(a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..a]++f b 0
              g 1=4%1
              g a=(3*a)%a


              Try it online!



              Explanation



              First lets talk about the lambda.



              n->putStrLn$f(a-n)' '++f(2*n-1)'*'


              This takes a number, n, to be drawn as stars. We print twice that many stars and then 1 more and pad it on the right to the size of the image. We pad this on the right by a spaces to center the line of stars. We can use this lambda to draw each line.



              From this lambda we create (%). (%) starts with doing mapM_ with our lambda to turn a profile into the shape.



              Now all we need to do is make a list of the profile for the star. We can do this by making a triangle first with [1..a], then padding it with some zeros ++replicate b 0. If we take the profile of the triangle and reverse it we get the other half of the star. To super impose them we just make a new profile where each entry is the max of the two triangles. This is zipWith max.



              We then call this in one of two ways: as 3%1 for input of 1 and with (3*a-1)%a otherwise.



              From here we do a little bit of fiddling with some of the values to shave some bytes. Since 3*a-1 is rather long we offset some of our other values by 1 so that everything cancels and we get the intended behavior with 3*a instead. Namely we start our list at 2 instead of 1 and do 2*n-3 instead of 2*n-1 to make up for the change.



              Alternative version, 114 bytes



              This one builds a point-free function (%)<*>min 2



              f=replicate
              a%b=mapM_(n->putStrLn$f(3*a-n)' '++f(2*(n-b)+1)'*')$zipWith max<*>reverse$[b..3*a]++f a 0
              (%)<*>min 2


              Try it online!



              Handles all $N>1$, 98 bytes



              f=replicate
              g a=mapM_(n->putStrLn$f(3*a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..3*a]++f a 0


              Try it online!



              Handles all cases like the $N=1$ case, 98 bytes



              f=replicate
              g a=mapM_(n->putStrLn$f(3*a-n)' '++f(2*n-1)'*')$zipWith max<*>reverse$[1..3*a]++f a 0


              Try it online!






              share|improve this answer











              $endgroup$












              • $begingroup$
                Your output looks nice now.
                $endgroup$
                – Michael Karas
                Apr 14 at 16:04













              7












              7








              7





              $begingroup$


              Haskell, 114 bytes



              Builds a function g which takes an number and produces a IO monad that prints the star to STDOUT. I think this is ok.





              f=replicate
              a%b=mapM_(n->putStrLn$f(a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..a]++f b 0
              g 1=4%1
              g a=(3*a)%a


              Try it online!



              Explanation



              First lets talk about the lambda.



              n->putStrLn$f(a-n)' '++f(2*n-1)'*'


              This takes a number, n, to be drawn as stars. We print twice that many stars and then 1 more and pad it on the right to the size of the image. We pad this on the right by a spaces to center the line of stars. We can use this lambda to draw each line.



              From this lambda we create (%). (%) starts with doing mapM_ with our lambda to turn a profile into the shape.



              Now all we need to do is make a list of the profile for the star. We can do this by making a triangle first with [1..a], then padding it with some zeros ++replicate b 0. If we take the profile of the triangle and reverse it we get the other half of the star. To super impose them we just make a new profile where each entry is the max of the two triangles. This is zipWith max.



              We then call this in one of two ways: as 3%1 for input of 1 and with (3*a-1)%a otherwise.



              From here we do a little bit of fiddling with some of the values to shave some bytes. Since 3*a-1 is rather long we offset some of our other values by 1 so that everything cancels and we get the intended behavior with 3*a instead. Namely we start our list at 2 instead of 1 and do 2*n-3 instead of 2*n-1 to make up for the change.



              Alternative version, 114 bytes



              This one builds a point-free function (%)<*>min 2



              f=replicate
              a%b=mapM_(n->putStrLn$f(3*a-n)' '++f(2*(n-b)+1)'*')$zipWith max<*>reverse$[b..3*a]++f a 0
              (%)<*>min 2


              Try it online!



              Handles all $N>1$, 98 bytes



              f=replicate
              g a=mapM_(n->putStrLn$f(3*a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..3*a]++f a 0


              Try it online!



              Handles all cases like the $N=1$ case, 98 bytes



              f=replicate
              g a=mapM_(n->putStrLn$f(3*a-n)' '++f(2*n-1)'*')$zipWith max<*>reverse$[1..3*a]++f a 0


              Try it online!






              share|improve this answer











              $endgroup$




              Haskell, 114 bytes



              Builds a function g which takes an number and produces a IO monad that prints the star to STDOUT. I think this is ok.





              f=replicate
              a%b=mapM_(n->putStrLn$f(a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..a]++f b 0
              g 1=4%1
              g a=(3*a)%a


              Try it online!



              Explanation



              First lets talk about the lambda.



              n->putStrLn$f(a-n)' '++f(2*n-1)'*'


              This takes a number, n, to be drawn as stars. We print twice that many stars and then 1 more and pad it on the right to the size of the image. We pad this on the right by a spaces to center the line of stars. We can use this lambda to draw each line.



              From this lambda we create (%). (%) starts with doing mapM_ with our lambda to turn a profile into the shape.



              Now all we need to do is make a list of the profile for the star. We can do this by making a triangle first with [1..a], then padding it with some zeros ++replicate b 0. If we take the profile of the triangle and reverse it we get the other half of the star. To super impose them we just make a new profile where each entry is the max of the two triangles. This is zipWith max.



              We then call this in one of two ways: as 3%1 for input of 1 and with (3*a-1)%a otherwise.



              From here we do a little bit of fiddling with some of the values to shave some bytes. Since 3*a-1 is rather long we offset some of our other values by 1 so that everything cancels and we get the intended behavior with 3*a instead. Namely we start our list at 2 instead of 1 and do 2*n-3 instead of 2*n-1 to make up for the change.



              Alternative version, 114 bytes



              This one builds a point-free function (%)<*>min 2



              f=replicate
              a%b=mapM_(n->putStrLn$f(3*a-n)' '++f(2*(n-b)+1)'*')$zipWith max<*>reverse$[b..3*a]++f a 0
              (%)<*>min 2


              Try it online!



              Handles all $N>1$, 98 bytes



              f=replicate
              g a=mapM_(n->putStrLn$f(3*a-n)' '++f(2*n-3)'*')$zipWith max<*>reverse$[2..3*a]++f a 0


              Try it online!



              Handles all cases like the $N=1$ case, 98 bytes



              f=replicate
              g a=mapM_(n->putStrLn$f(3*a-n)' '++f(2*n-1)'*')$zipWith max<*>reverse$[1..3*a]++f a 0


              Try it online!







              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited Apr 15 at 4:59

























              answered Apr 14 at 15:28









              Sriotchilism O'ZaicSriotchilism O'Zaic

              35.7k10161369




              35.7k10161369











              • $begingroup$
                Your output looks nice now.
                $endgroup$
                – Michael Karas
                Apr 14 at 16:04
















              • $begingroup$
                Your output looks nice now.
                $endgroup$
                – Michael Karas
                Apr 14 at 16:04















              $begingroup$
              Your output looks nice now.
              $endgroup$
              – Michael Karas
              Apr 14 at 16:04




              $begingroup$
              Your output looks nice now.
              $endgroup$
              – Michael Karas
              Apr 14 at 16:04











              6












              $begingroup$


              R, 125 117 107 bytes





              function(n,S=3*n+!n-1,P=pmax(I<-c(2:S*2-3,!1:n),rev(I)),`~`=strrep)cat(paste0(' '~S-2-P%/%2,'*'~P),sep='
              ')


              Try it online!



              • -18 thanks to @Giuseppe


              Previous (different) approach :




              R, 150 148 136 135 130 128 bytes





              function(n,G=n<2,K=4*n-1+G)for(i in 1:K-1)cat(`[<-`(rep(' ',W<-3*n-2+G),1+W+c(-i:i*(i<K-n),-(j=K-i-1):j*(i>=n)),'*'),sep='','
              ')


              Try it online!



              • -14 thanks to @Kirill L.

              • -1 thanks to @t-clausen.dk

              • -7 thanks to @Giuseppe





              share|improve this answer











              $endgroup$












              • $begingroup$
                Yeah, I also don't like those repeated S[]= assignments, and looks like this works
                $endgroup$
                – Kirill L.
                Apr 14 at 17:55










              • $begingroup$
                Great ! I was thinking to something like that... but I was having dinner :P
                $endgroup$
                – digEmAll
                Apr 14 at 18:08










              • $begingroup$
                Seems you can save a byte: i>n-1 can be rewritten to i>=n
                $endgroup$
                – t-clausen.dk
                Apr 15 at 12:36










              • $begingroup$
                @t-clausen.dk: yep, thanks!
                $endgroup$
                – digEmAll
                Apr 15 at 16:54






              • 1




                $begingroup$
                117 bytes on the newer version
                $endgroup$
                – Giuseppe
                2 days ago
















              6












              $begingroup$


              R, 125 117 107 bytes





              function(n,S=3*n+!n-1,P=pmax(I<-c(2:S*2-3,!1:n),rev(I)),`~`=strrep)cat(paste0(' '~S-2-P%/%2,'*'~P),sep='
              ')


              Try it online!



              • -18 thanks to @Giuseppe


              Previous (different) approach :




              R, 150 148 136 135 130 128 bytes





              function(n,G=n<2,K=4*n-1+G)for(i in 1:K-1)cat(`[<-`(rep(' ',W<-3*n-2+G),1+W+c(-i:i*(i<K-n),-(j=K-i-1):j*(i>=n)),'*'),sep='','
              ')


              Try it online!



              • -14 thanks to @Kirill L.

              • -1 thanks to @t-clausen.dk

              • -7 thanks to @Giuseppe





              share|improve this answer











              $endgroup$












              • $begingroup$
                Yeah, I also don't like those repeated S[]= assignments, and looks like this works
                $endgroup$
                – Kirill L.
                Apr 14 at 17:55










              • $begingroup$
                Great ! I was thinking to something like that... but I was having dinner :P
                $endgroup$
                – digEmAll
                Apr 14 at 18:08










              • $begingroup$
                Seems you can save a byte: i>n-1 can be rewritten to i>=n
                $endgroup$
                – t-clausen.dk
                Apr 15 at 12:36










              • $begingroup$
                @t-clausen.dk: yep, thanks!
                $endgroup$
                – digEmAll
                Apr 15 at 16:54






              • 1




                $begingroup$
                117 bytes on the newer version
                $endgroup$
                – Giuseppe
                2 days ago














              6












              6








              6





              $begingroup$


              R, 125 117 107 bytes





              function(n,S=3*n+!n-1,P=pmax(I<-c(2:S*2-3,!1:n),rev(I)),`~`=strrep)cat(paste0(' '~S-2-P%/%2,'*'~P),sep='
              ')


              Try it online!



              • -18 thanks to @Giuseppe


              Previous (different) approach :




              R, 150 148 136 135 130 128 bytes





              function(n,G=n<2,K=4*n-1+G)for(i in 1:K-1)cat(`[<-`(rep(' ',W<-3*n-2+G),1+W+c(-i:i*(i<K-n),-(j=K-i-1):j*(i>=n)),'*'),sep='','
              ')


              Try it online!



              • -14 thanks to @Kirill L.

              • -1 thanks to @t-clausen.dk

              • -7 thanks to @Giuseppe





              share|improve this answer











              $endgroup$




              R, 125 117 107 bytes





              function(n,S=3*n+!n-1,P=pmax(I<-c(2:S*2-3,!1:n),rev(I)),`~`=strrep)cat(paste0(' '~S-2-P%/%2,'*'~P),sep='
              ')


              Try it online!



              • -18 thanks to @Giuseppe


              Previous (different) approach :




              R, 150 148 136 135 130 128 bytes





              function(n,G=n<2,K=4*n-1+G)for(i in 1:K-1)cat(`[<-`(rep(' ',W<-3*n-2+G),1+W+c(-i:i*(i<K-n),-(j=K-i-1):j*(i>=n)),'*'),sep='','
              ')


              Try it online!



              • -14 thanks to @Kirill L.

              • -1 thanks to @t-clausen.dk

              • -7 thanks to @Giuseppe






              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited 2 days ago

























              answered Apr 14 at 17:06









              digEmAlldigEmAll

              3,604515




              3,604515











              • $begingroup$
                Yeah, I also don't like those repeated S[]= assignments, and looks like this works
                $endgroup$
                – Kirill L.
                Apr 14 at 17:55










              • $begingroup$
                Great ! I was thinking to something like that... but I was having dinner :P
                $endgroup$
                – digEmAll
                Apr 14 at 18:08










              • $begingroup$
                Seems you can save a byte: i>n-1 can be rewritten to i>=n
                $endgroup$
                – t-clausen.dk
                Apr 15 at 12:36










              • $begingroup$
                @t-clausen.dk: yep, thanks!
                $endgroup$
                – digEmAll
                Apr 15 at 16:54






              • 1




                $begingroup$
                117 bytes on the newer version
                $endgroup$
                – Giuseppe
                2 days ago

















              • $begingroup$
                Yeah, I also don't like those repeated S[]= assignments, and looks like this works
                $endgroup$
                – Kirill L.
                Apr 14 at 17:55










              • $begingroup$
                Great ! I was thinking to something like that... but I was having dinner :P
                $endgroup$
                – digEmAll
                Apr 14 at 18:08










              • $begingroup$
                Seems you can save a byte: i>n-1 can be rewritten to i>=n
                $endgroup$
                – t-clausen.dk
                Apr 15 at 12:36










              • $begingroup$
                @t-clausen.dk: yep, thanks!
                $endgroup$
                – digEmAll
                Apr 15 at 16:54






              • 1




                $begingroup$
                117 bytes on the newer version
                $endgroup$
                – Giuseppe
                2 days ago
















              $begingroup$
              Yeah, I also don't like those repeated S[]= assignments, and looks like this works
              $endgroup$
              – Kirill L.
              Apr 14 at 17:55




              $begingroup$
              Yeah, I also don't like those repeated S[]= assignments, and looks like this works
              $endgroup$
              – Kirill L.
              Apr 14 at 17:55












              $begingroup$
              Great ! I was thinking to something like that... but I was having dinner :P
              $endgroup$
              – digEmAll
              Apr 14 at 18:08




              $begingroup$
              Great ! I was thinking to something like that... but I was having dinner :P
              $endgroup$
              – digEmAll
              Apr 14 at 18:08












              $begingroup$
              Seems you can save a byte: i>n-1 can be rewritten to i>=n
              $endgroup$
              – t-clausen.dk
              Apr 15 at 12:36




              $begingroup$
              Seems you can save a byte: i>n-1 can be rewritten to i>=n
              $endgroup$
              – t-clausen.dk
              Apr 15 at 12:36












              $begingroup$
              @t-clausen.dk: yep, thanks!
              $endgroup$
              – digEmAll
              Apr 15 at 16:54




              $begingroup$
              @t-clausen.dk: yep, thanks!
              $endgroup$
              – digEmAll
              Apr 15 at 16:54




              1




              1




              $begingroup$
              117 bytes on the newer version
              $endgroup$
              – Giuseppe
              2 days ago





              $begingroup$
              117 bytes on the newer version
              $endgroup$
              – Giuseppe
              2 days ago












              5












              $begingroup$

              JavaScript (ES8), 101 bytes





              n=>(k=3*n+!~-n,g=y=>++y<k+n?`
              `.padEnd(w=k-Math.max(y>n&&n-y+k,y<k&&y)).padEnd(2*k+~w,'*')+g(y):'')``


              Try it online!






              share|improve this answer









              $endgroup$

















                5












                $begingroup$

                JavaScript (ES8), 101 bytes





                n=>(k=3*n+!~-n,g=y=>++y<k+n?`
                `.padEnd(w=k-Math.max(y>n&&n-y+k,y<k&&y)).padEnd(2*k+~w,'*')+g(y):'')``


                Try it online!






                share|improve this answer









                $endgroup$















                  5












                  5








                  5





                  $begingroup$

                  JavaScript (ES8), 101 bytes





                  n=>(k=3*n+!~-n,g=y=>++y<k+n?`
                  `.padEnd(w=k-Math.max(y>n&&n-y+k,y<k&&y)).padEnd(2*k+~w,'*')+g(y):'')``


                  Try it online!






                  share|improve this answer









                  $endgroup$



                  JavaScript (ES8), 101 bytes





                  n=>(k=3*n+!~-n,g=y=>++y<k+n?`
                  `.padEnd(w=k-Math.max(y>n&&n-y+k,y<k&&y)).padEnd(2*k+~w,'*')+g(y):'')``


                  Try it online!







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Apr 15 at 6:25









                  ArnauldArnauld

                  81.6k797336




                  81.6k797336





















                      5












                      $begingroup$


                      Python 2, 101 99 97 bytes





                      n=input()
                      x=2*(n>1)
                      for i in range(1,8*n,2):print('*'*[i,8*n-i-x][i+x>n*6or i/n/2%2]).center(6*n)


                      Try it online!



                      -2 bytes, thanks to Lynn






                      share|improve this answer











                      $endgroup$












                      • $begingroup$
                        I'm reasonably sure you don't need the parens in the selector expression, so i+x>n*6or saves two bytes.
                        $endgroup$
                        – Lynn
                        Apr 15 at 13:25










                      • $begingroup$
                        @Lynn Thanks :)
                        $endgroup$
                        – TFeld
                        Apr 15 at 14:04










                      • $begingroup$
                        You can even go i+x>~i/n/2%2*6*n or something like i+x>3*n*(~i/n&2) (both 96 bytes.)
                        $endgroup$
                        – Lynn
                        Apr 15 at 14:15















                      5












                      $begingroup$


                      Python 2, 101 99 97 bytes





                      n=input()
                      x=2*(n>1)
                      for i in range(1,8*n,2):print('*'*[i,8*n-i-x][i+x>n*6or i/n/2%2]).center(6*n)


                      Try it online!



                      -2 bytes, thanks to Lynn






                      share|improve this answer











                      $endgroup$












                      • $begingroup$
                        I'm reasonably sure you don't need the parens in the selector expression, so i+x>n*6or saves two bytes.
                        $endgroup$
                        – Lynn
                        Apr 15 at 13:25










                      • $begingroup$
                        @Lynn Thanks :)
                        $endgroup$
                        – TFeld
                        Apr 15 at 14:04










                      • $begingroup$
                        You can even go i+x>~i/n/2%2*6*n or something like i+x>3*n*(~i/n&2) (both 96 bytes.)
                        $endgroup$
                        – Lynn
                        Apr 15 at 14:15













                      5












                      5








                      5





                      $begingroup$


                      Python 2, 101 99 97 bytes





                      n=input()
                      x=2*(n>1)
                      for i in range(1,8*n,2):print('*'*[i,8*n-i-x][i+x>n*6or i/n/2%2]).center(6*n)


                      Try it online!



                      -2 bytes, thanks to Lynn






                      share|improve this answer











                      $endgroup$




                      Python 2, 101 99 97 bytes





                      n=input()
                      x=2*(n>1)
                      for i in range(1,8*n,2):print('*'*[i,8*n-i-x][i+x>n*6or i/n/2%2]).center(6*n)


                      Try it online!



                      -2 bytes, thanks to Lynn







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited Apr 15 at 14:04

























                      answered Apr 14 at 16:21









                      TFeldTFeld

                      16.6k21451




                      16.6k21451











                      • $begingroup$
                        I'm reasonably sure you don't need the parens in the selector expression, so i+x>n*6or saves two bytes.
                        $endgroup$
                        – Lynn
                        Apr 15 at 13:25










                      • $begingroup$
                        @Lynn Thanks :)
                        $endgroup$
                        – TFeld
                        Apr 15 at 14:04










                      • $begingroup$
                        You can even go i+x>~i/n/2%2*6*n or something like i+x>3*n*(~i/n&2) (both 96 bytes.)
                        $endgroup$
                        – Lynn
                        Apr 15 at 14:15
















                      • $begingroup$
                        I'm reasonably sure you don't need the parens in the selector expression, so i+x>n*6or saves two bytes.
                        $endgroup$
                        – Lynn
                        Apr 15 at 13:25










                      • $begingroup$
                        @Lynn Thanks :)
                        $endgroup$
                        – TFeld
                        Apr 15 at 14:04










                      • $begingroup$
                        You can even go i+x>~i/n/2%2*6*n or something like i+x>3*n*(~i/n&2) (both 96 bytes.)
                        $endgroup$
                        – Lynn
                        Apr 15 at 14:15















                      $begingroup$
                      I'm reasonably sure you don't need the parens in the selector expression, so i+x>n*6or saves two bytes.
                      $endgroup$
                      – Lynn
                      Apr 15 at 13:25




                      $begingroup$
                      I'm reasonably sure you don't need the parens in the selector expression, so i+x>n*6or saves two bytes.
                      $endgroup$
                      – Lynn
                      Apr 15 at 13:25












                      $begingroup$
                      @Lynn Thanks :)
                      $endgroup$
                      – TFeld
                      Apr 15 at 14:04




                      $begingroup$
                      @Lynn Thanks :)
                      $endgroup$
                      – TFeld
                      Apr 15 at 14:04












                      $begingroup$
                      You can even go i+x>~i/n/2%2*6*n or something like i+x>3*n*(~i/n&2) (both 96 bytes.)
                      $endgroup$
                      – Lynn
                      Apr 15 at 14:15




                      $begingroup$
                      You can even go i+x>~i/n/2%2*6*n or something like i+x>3*n*(~i/n&2) (both 96 bytes.)
                      $endgroup$
                      – Lynn
                      Apr 15 at 14:15











                      3












                      $begingroup$


                      Jelly, 21 bytes



                      ×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY


                      A full program accepting a positive integer which prints to STDOUT.



                      Try it online! Or see a test-suite.



                      How?



                      ×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY - Main Link: integer, n e.g. 3
                      3 - three 3
                      × - multiply (n by) 9
                      ’ - decrement 8
                      Ị - insignificant (abs(n)<=1)? 0
                      + - add 8
                      R - range [1,2,3,4,5,6,7,8]
                      Ṭ - un-truth (n) [0,0,1]
                      ; - concatenate [1,2,3,4,5,6,7,8,0,0,1]
                      $ - last two links as a monad:
                      Ṛ - reverse [1,0,0,8,7,6,5,4,3,2,1]
                      » - maximum (vectorises) [1,2,3,8,7,6,7,8,3,2,1]
                      ”* - an asterisk character '*'
                      ẋ - repeat (vectorises) ["*","**",...]
                      ⁶ - a space character ' '
                      z - transpose with filler ["***********"," ********* ",...]
                      Ṛ - reverse [" * * "," ** ** ",...]
                      Z - transpose [" *"," **",...]
                      ŒB - bounce (vectorises) [" * "," *** ",...]
                      Y - join with newline characters " * n *** n..."
                      - implicit print





                      share|improve this answer











                      $endgroup$

















                        3












                        $begingroup$


                        Jelly, 21 bytes



                        ×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY


                        A full program accepting a positive integer which prints to STDOUT.



                        Try it online! Or see a test-suite.



                        How?



                        ×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY - Main Link: integer, n e.g. 3
                        3 - three 3
                        × - multiply (n by) 9
                        ’ - decrement 8
                        Ị - insignificant (abs(n)<=1)? 0
                        + - add 8
                        R - range [1,2,3,4,5,6,7,8]
                        Ṭ - un-truth (n) [0,0,1]
                        ; - concatenate [1,2,3,4,5,6,7,8,0,0,1]
                        $ - last two links as a monad:
                        Ṛ - reverse [1,0,0,8,7,6,5,4,3,2,1]
                        » - maximum (vectorises) [1,2,3,8,7,6,7,8,3,2,1]
                        ”* - an asterisk character '*'
                        ẋ - repeat (vectorises) ["*","**",...]
                        ⁶ - a space character ' '
                        z - transpose with filler ["***********"," ********* ",...]
                        Ṛ - reverse [" * * "," ** ** ",...]
                        Z - transpose [" *"," **",...]
                        ŒB - bounce (vectorises) [" * "," *** ",...]
                        Y - join with newline characters " * n *** n..."
                        - implicit print





                        share|improve this answer











                        $endgroup$















                          3












                          3








                          3





                          $begingroup$


                          Jelly, 21 bytes



                          ×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY


                          A full program accepting a positive integer which prints to STDOUT.



                          Try it online! Or see a test-suite.



                          How?



                          ×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY - Main Link: integer, n e.g. 3
                          3 - three 3
                          × - multiply (n by) 9
                          ’ - decrement 8
                          Ị - insignificant (abs(n)<=1)? 0
                          + - add 8
                          R - range [1,2,3,4,5,6,7,8]
                          Ṭ - un-truth (n) [0,0,1]
                          ; - concatenate [1,2,3,4,5,6,7,8,0,0,1]
                          $ - last two links as a monad:
                          Ṛ - reverse [1,0,0,8,7,6,5,4,3,2,1]
                          » - maximum (vectorises) [1,2,3,8,7,6,7,8,3,2,1]
                          ”* - an asterisk character '*'
                          ẋ - repeat (vectorises) ["*","**",...]
                          ⁶ - a space character ' '
                          z - transpose with filler ["***********"," ********* ",...]
                          Ṛ - reverse [" * * "," ** ** ",...]
                          Z - transpose [" *"," **",...]
                          ŒB - bounce (vectorises) [" * "," *** ",...]
                          Y - join with newline characters " * n *** n..."
                          - implicit print





                          share|improve this answer











                          $endgroup$




                          Jelly, 21 bytes



                          ×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY


                          A full program accepting a positive integer which prints to STDOUT.



                          Try it online! Or see a test-suite.



                          How?



                          ×3’+ỊR;Ṭ»Ṛ$”*ẋz⁶ṚZŒBY - Main Link: integer, n e.g. 3
                          3 - three 3
                          × - multiply (n by) 9
                          ’ - decrement 8
                          Ị - insignificant (abs(n)<=1)? 0
                          + - add 8
                          R - range [1,2,3,4,5,6,7,8]
                          Ṭ - un-truth (n) [0,0,1]
                          ; - concatenate [1,2,3,4,5,6,7,8,0,0,1]
                          $ - last two links as a monad:
                          Ṛ - reverse [1,0,0,8,7,6,5,4,3,2,1]
                          » - maximum (vectorises) [1,2,3,8,7,6,7,8,3,2,1]
                          ”* - an asterisk character '*'
                          ẋ - repeat (vectorises) ["*","**",...]
                          ⁶ - a space character ' '
                          z - transpose with filler ["***********"," ********* ",...]
                          Ṛ - reverse [" * * "," ** ** ",...]
                          Z - transpose [" *"," **",...]
                          ŒB - bounce (vectorises) [" * "," *** ",...]
                          Y - join with newline characters " * n *** n..."
                          - implicit print






                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited Apr 14 at 20:29

























                          answered Apr 14 at 19:15









                          Jonathan AllanJonathan Allan

                          54.5k537174




                          54.5k537174





















                              2












                              $begingroup$


                              Canvas, 25 23 bytes



                              R:{⁸3×4M∔]∔{*×]↔⁸1≡?╪]┼


                              Try it here!



                              15 bytes without handling 1






                              share|improve this answer











                              $endgroup$












                              • $begingroup$
                                Makes nice stars.
                                $endgroup$
                                – Michael Karas
                                Apr 14 at 16:07















                              2












                              $begingroup$


                              Canvas, 25 23 bytes



                              R:{⁸3×4M∔]∔{*×]↔⁸1≡?╪]┼


                              Try it here!



                              15 bytes without handling 1






                              share|improve this answer











                              $endgroup$












                              • $begingroup$
                                Makes nice stars.
                                $endgroup$
                                – Michael Karas
                                Apr 14 at 16:07













                              2












                              2








                              2





                              $begingroup$


                              Canvas, 25 23 bytes



                              R:{⁸3×4M∔]∔{*×]↔⁸1≡?╪]┼


                              Try it here!



                              15 bytes without handling 1






                              share|improve this answer











                              $endgroup$




                              Canvas, 25 23 bytes



                              R:{⁸3×4M∔]∔{*×]↔⁸1≡?╪]┼


                              Try it here!



                              15 bytes without handling 1







                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              edited Apr 14 at 16:06

























                              answered Apr 14 at 15:49









                              dzaimadzaima

                              16.1k22060




                              16.1k22060











                              • $begingroup$
                                Makes nice stars.
                                $endgroup$
                                – Michael Karas
                                Apr 14 at 16:07
















                              • $begingroup$
                                Makes nice stars.
                                $endgroup$
                                – Michael Karas
                                Apr 14 at 16:07















                              $begingroup$
                              Makes nice stars.
                              $endgroup$
                              – Michael Karas
                              Apr 14 at 16:07




                              $begingroup$
                              Makes nice stars.
                              $endgroup$
                              – Michael Karas
                              Apr 14 at 16:07











                              2












                              $begingroup$


                              Jelly, 21 bytes



                              ×’»ɗ3”*xⱮz⁶ɓ⁶x;»Ṛ$ŒBY


                              Try it online!



                              A monadic link accepting a single integer as its left argument and returning a newline-separated Jelly string with the star as its output. When run as a full program implicitly prints the star to STDOUT.



                              Explanation



                               ɗ3 | Last three links as a dyad with 3 as right argument:
                              × | Multiply (by 3)
                              ’ | Decrease by 1
                              » | Maximum of this (and 3)
                              ”*xⱮ | An implicit range from 1 to this many asterisks
                              z⁶ | Zip with space as filler
                              ɓ | Start a new dyadic chain with the input as left argument and the list of asterisks as right argument
                              ⁶x | Input many spaces
                              ; | Concatenated to the asterisk list
                              $ | Last two links as a monad:
                              »Ṛ | Maximum of this list and its reverse
                              ŒB | Bounce each list (i.e. mirror it without duplicating the middle entry)
                              Y | Join with newlines





                              share|improve this answer









                              $endgroup$








                              • 1




                                $begingroup$
                                I appreciate you writing the start the stylish way even though ×3’»3 is the same length ^_^
                                $endgroup$
                                – Lynn
                                Apr 15 at 13:28






                              • 1




                                $begingroup$
                                @Lynn at the point I did that I thought I was going to be using another quick to merge multiple links, and it meant that I could do so within the maximum 4 allowed. However, once I decided to use ɓ it didn’t matter but I kept it because I still liked it!
                                $endgroup$
                                – Nick Kennedy
                                Apr 15 at 13:32















                              2












                              $begingroup$


                              Jelly, 21 bytes



                              ×’»ɗ3”*xⱮz⁶ɓ⁶x;»Ṛ$ŒBY


                              Try it online!



                              A monadic link accepting a single integer as its left argument and returning a newline-separated Jelly string with the star as its output. When run as a full program implicitly prints the star to STDOUT.



                              Explanation



                               ɗ3 | Last three links as a dyad with 3 as right argument:
                              × | Multiply (by 3)
                              ’ | Decrease by 1
                              » | Maximum of this (and 3)
                              ”*xⱮ | An implicit range from 1 to this many asterisks
                              z⁶ | Zip with space as filler
                              ɓ | Start a new dyadic chain with the input as left argument and the list of asterisks as right argument
                              ⁶x | Input many spaces
                              ; | Concatenated to the asterisk list
                              $ | Last two links as a monad:
                              »Ṛ | Maximum of this list and its reverse
                              ŒB | Bounce each list (i.e. mirror it without duplicating the middle entry)
                              Y | Join with newlines





                              share|improve this answer









                              $endgroup$








                              • 1




                                $begingroup$
                                I appreciate you writing the start the stylish way even though ×3’»3 is the same length ^_^
                                $endgroup$
                                – Lynn
                                Apr 15 at 13:28






                              • 1




                                $begingroup$
                                @Lynn at the point I did that I thought I was going to be using another quick to merge multiple links, and it meant that I could do so within the maximum 4 allowed. However, once I decided to use ɓ it didn’t matter but I kept it because I still liked it!
                                $endgroup$
                                – Nick Kennedy
                                Apr 15 at 13:32













                              2












                              2








                              2





                              $begingroup$


                              Jelly, 21 bytes



                              ×’»ɗ3”*xⱮz⁶ɓ⁶x;»Ṛ$ŒBY


                              Try it online!



                              A monadic link accepting a single integer as its left argument and returning a newline-separated Jelly string with the star as its output. When run as a full program implicitly prints the star to STDOUT.



                              Explanation



                               ɗ3 | Last three links as a dyad with 3 as right argument:
                              × | Multiply (by 3)
                              ’ | Decrease by 1
                              » | Maximum of this (and 3)
                              ”*xⱮ | An implicit range from 1 to this many asterisks
                              z⁶ | Zip with space as filler
                              ɓ | Start a new dyadic chain with the input as left argument and the list of asterisks as right argument
                              ⁶x | Input many spaces
                              ; | Concatenated to the asterisk list
                              $ | Last two links as a monad:
                              »Ṛ | Maximum of this list and its reverse
                              ŒB | Bounce each list (i.e. mirror it without duplicating the middle entry)
                              Y | Join with newlines





                              share|improve this answer









                              $endgroup$




                              Jelly, 21 bytes



                              ×’»ɗ3”*xⱮz⁶ɓ⁶x;»Ṛ$ŒBY


                              Try it online!



                              A monadic link accepting a single integer as its left argument and returning a newline-separated Jelly string with the star as its output. When run as a full program implicitly prints the star to STDOUT.



                              Explanation



                               ɗ3 | Last three links as a dyad with 3 as right argument:
                              × | Multiply (by 3)
                              ’ | Decrease by 1
                              » | Maximum of this (and 3)
                              ”*xⱮ | An implicit range from 1 to this many asterisks
                              z⁶ | Zip with space as filler
                              ɓ | Start a new dyadic chain with the input as left argument and the list of asterisks as right argument
                              ⁶x | Input many spaces
                              ; | Concatenated to the asterisk list
                              $ | Last two links as a monad:
                              »Ṛ | Maximum of this list and its reverse
                              ŒB | Bounce each list (i.e. mirror it without duplicating the middle entry)
                              Y | Join with newlines






                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered Apr 14 at 20:08









                              Nick KennedyNick Kennedy

                              1,83149




                              1,83149







                              • 1




                                $begingroup$
                                I appreciate you writing the start the stylish way even though ×3’»3 is the same length ^_^
                                $endgroup$
                                – Lynn
                                Apr 15 at 13:28






                              • 1




                                $begingroup$
                                @Lynn at the point I did that I thought I was going to be using another quick to merge multiple links, and it meant that I could do so within the maximum 4 allowed. However, once I decided to use ɓ it didn’t matter but I kept it because I still liked it!
                                $endgroup$
                                – Nick Kennedy
                                Apr 15 at 13:32












                              • 1




                                $begingroup$
                                I appreciate you writing the start the stylish way even though ×3’»3 is the same length ^_^
                                $endgroup$
                                – Lynn
                                Apr 15 at 13:28






                              • 1




                                $begingroup$
                                @Lynn at the point I did that I thought I was going to be using another quick to merge multiple links, and it meant that I could do so within the maximum 4 allowed. However, once I decided to use ɓ it didn’t matter but I kept it because I still liked it!
                                $endgroup$
                                – Nick Kennedy
                                Apr 15 at 13:32







                              1




                              1




                              $begingroup$
                              I appreciate you writing the start the stylish way even though ×3’»3 is the same length ^_^
                              $endgroup$
                              – Lynn
                              Apr 15 at 13:28




                              $begingroup$
                              I appreciate you writing the start the stylish way even though ×3’»3 is the same length ^_^
                              $endgroup$
                              – Lynn
                              Apr 15 at 13:28




                              1




                              1




                              $begingroup$
                              @Lynn at the point I did that I thought I was going to be using another quick to merge multiple links, and it meant that I could do so within the maximum 4 allowed. However, once I decided to use ɓ it didn’t matter but I kept it because I still liked it!
                              $endgroup$
                              – Nick Kennedy
                              Apr 15 at 13:32




                              $begingroup$
                              @Lynn at the point I did that I thought I was going to be using another quick to merge multiple links, and it meant that I could do so within the maximum 4 allowed. However, once I decided to use ɓ it didn’t matter but I kept it because I still liked it!
                              $endgroup$
                              – Nick Kennedy
                              Apr 15 at 13:32











                              2












                              $begingroup$


                              Charcoal, 25 bytes



                              G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*‖O¬C⁰¬⊖θ


                              Try it online! Link is to verbose version of code. Explanation:



                              G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*


                              Draw an irregular pentagon representing the top right quarter of the star, but special-casing 1 to make the row an extra column wider.



                              ‖O¬


                              Reflect to complete the star.



                              C⁰¬⊖θ


                              More special-casing to make the star for 1 an extra row taller.



                              Alternative solution, also 25 bytes:



                              ∧¬⊖θ*G↗↓⊖׳N*‖O‖OO↓∧⊖θ⊖⊗θ


                              Try it online! Link is to verbose version of code. Explanation:



                              ∧¬⊖θ*


                              Print an extra * for the case of 1.



                              G↗↓⊖׳N*


                              Draw the left half of a triangle of the appropriate size.



                              ‖O


                              Reflect to complete the triangle.



                              ‖OO↓∧⊖θ⊖⊗θ


                              Overlap it with its reflection, except in the case of 1, in which case just reflect it.



                              14 bytes without special-casing for 1:



                              G<⊖׳N*‖OO↑⊖⊗θ


                              Try it online! Link is to verbose version of code. Explanation:



                              G<⊖׳N*


                              Draw a triangle of the appropriate size.



                              ‖OO↑⊖⊗θ


                              Overlap it with its reflection.






                              share|improve this answer











                              $endgroup$

















                                2












                                $begingroup$


                                Charcoal, 25 bytes



                                G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*‖O¬C⁰¬⊖θ


                                Try it online! Link is to verbose version of code. Explanation:



                                G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*


                                Draw an irregular pentagon representing the top right quarter of the star, but special-casing 1 to make the row an extra column wider.



                                ‖O¬


                                Reflect to complete the star.



                                C⁰¬⊖θ


                                More special-casing to make the star for 1 an extra row taller.



                                Alternative solution, also 25 bytes:



                                ∧¬⊖θ*G↗↓⊖׳N*‖O‖OO↓∧⊖θ⊖⊗θ


                                Try it online! Link is to verbose version of code. Explanation:



                                ∧¬⊖θ*


                                Print an extra * for the case of 1.



                                G↗↓⊖׳N*


                                Draw the left half of a triangle of the appropriate size.



                                ‖O


                                Reflect to complete the triangle.



                                ‖OO↓∧⊖θ⊖⊗θ


                                Overlap it with its reflection, except in the case of 1, in which case just reflect it.



                                14 bytes without special-casing for 1:



                                G<⊖׳N*‖OO↑⊖⊗θ


                                Try it online! Link is to verbose version of code. Explanation:



                                G<⊖׳N*


                                Draw a triangle of the appropriate size.



                                ‖OO↑⊖⊗θ


                                Overlap it with its reflection.






                                share|improve this answer











                                $endgroup$















                                  2












                                  2








                                  2





                                  $begingroup$


                                  Charcoal, 25 bytes



                                  G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*‖O¬C⁰¬⊖θ


                                  Try it online! Link is to verbose version of code. Explanation:



                                  G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*


                                  Draw an irregular pentagon representing the top right quarter of the star, but special-casing 1 to make the row an extra column wider.



                                  ‖O¬


                                  Reflect to complete the star.



                                  C⁰¬⊖θ


                                  More special-casing to make the star for 1 an extra row taller.



                                  Alternative solution, also 25 bytes:



                                  ∧¬⊖θ*G↗↓⊖׳N*‖O‖OO↓∧⊖θ⊖⊗θ


                                  Try it online! Link is to verbose version of code. Explanation:



                                  ∧¬⊖θ*


                                  Print an extra * for the case of 1.



                                  G↗↓⊖׳N*


                                  Draw the left half of a triangle of the appropriate size.



                                  ‖O


                                  Reflect to complete the triangle.



                                  ‖OO↓∧⊖θ⊖⊗θ


                                  Overlap it with its reflection, except in the case of 1, in which case just reflect it.



                                  14 bytes without special-casing for 1:



                                  G<⊖׳N*‖OO↑⊖⊗θ


                                  Try it online! Link is to verbose version of code. Explanation:



                                  G<⊖׳N*


                                  Draw a triangle of the appropriate size.



                                  ‖OO↑⊖⊗θ


                                  Overlap it with its reflection.






                                  share|improve this answer











                                  $endgroup$




                                  Charcoal, 25 bytes



                                  G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*‖O¬C⁰¬⊖θ


                                  Try it online! Link is to verbose version of code. Explanation:



                                  G↙θ←⁺⊗θ¬⊖θ↑⊗θ↘⊕θ*


                                  Draw an irregular pentagon representing the top right quarter of the star, but special-casing 1 to make the row an extra column wider.



                                  ‖O¬


                                  Reflect to complete the star.



                                  C⁰¬⊖θ


                                  More special-casing to make the star for 1 an extra row taller.



                                  Alternative solution, also 25 bytes:



                                  ∧¬⊖θ*G↗↓⊖׳N*‖O‖OO↓∧⊖θ⊖⊗θ


                                  Try it online! Link is to verbose version of code. Explanation:



                                  ∧¬⊖θ*


                                  Print an extra * for the case of 1.



                                  G↗↓⊖׳N*


                                  Draw the left half of a triangle of the appropriate size.



                                  ‖O


                                  Reflect to complete the triangle.



                                  ‖OO↓∧⊖θ⊖⊗θ


                                  Overlap it with its reflection, except in the case of 1, in which case just reflect it.



                                  14 bytes without special-casing for 1:



                                  G<⊖׳N*‖OO↑⊖⊗θ


                                  Try it online! Link is to verbose version of code. Explanation:



                                  G<⊖׳N*


                                  Draw a triangle of the appropriate size.



                                  ‖OO↑⊖⊗θ


                                  Overlap it with its reflection.







                                  share|improve this answer














                                  share|improve this answer



                                  share|improve this answer








                                  edited Apr 14 at 21:26

























                                  answered Apr 14 at 21:15









                                  NeilNeil

                                  83k745179




                                  83k745179





















                                      2












                                      $begingroup$


                                      Perl 6, 74 bytes





                                      [R,] $_o.&


                                      Try it online!



                                      Literally creates a triangle with the right proportions and overlaps it with a upside-down copy using the string or operator (~|). Outputs as a list of lines with a leading and trailing line whitespace.



                                      Explanation:



                                       {.& # Anonymous code block
                                      ( )xx$_*3-($_>1) # Repeat n*3-(n!=1) times
                                      ' 'x--$+$_*3 # With a decreasing indentation
                                      ~'*'x$++*2+1 # Append an increasing triangle
                                      # This creates the triangle
                                      ,|($ xx$_) # And add some padding lines
                                      o # Pass the triangle to the combining function
                                      Z~| # Zip string bitwise or
                                      $_ # The list
                                      [R,] $_ # With its reverse





                                      share|improve this answer









                                      $endgroup$

















                                        2












                                        $begingroup$


                                        Perl 6, 74 bytes





                                        [R,] $_o.&


                                        Try it online!



                                        Literally creates a triangle with the right proportions and overlaps it with a upside-down copy using the string or operator (~|). Outputs as a list of lines with a leading and trailing line whitespace.



                                        Explanation:



                                         {.& # Anonymous code block
                                        ( )xx$_*3-($_>1) # Repeat n*3-(n!=1) times
                                        ' 'x--$+$_*3 # With a decreasing indentation
                                        ~'*'x$++*2+1 # Append an increasing triangle
                                        # This creates the triangle
                                        ,|($ xx$_) # And add some padding lines
                                        o # Pass the triangle to the combining function
                                        Z~| # Zip string bitwise or
                                        $_ # The list
                                        [R,] $_ # With its reverse





                                        share|improve this answer









                                        $endgroup$















                                          2












                                          2








                                          2





                                          $begingroup$


                                          Perl 6, 74 bytes





                                          [R,] $_o.&


                                          Try it online!



                                          Literally creates a triangle with the right proportions and overlaps it with a upside-down copy using the string or operator (~|). Outputs as a list of lines with a leading and trailing line whitespace.



                                          Explanation:



                                           {.& # Anonymous code block
                                          ( )xx$_*3-($_>1) # Repeat n*3-(n!=1) times
                                          ' 'x--$+$_*3 # With a decreasing indentation
                                          ~'*'x$++*2+1 # Append an increasing triangle
                                          # This creates the triangle
                                          ,|($ xx$_) # And add some padding lines
                                          o # Pass the triangle to the combining function
                                          Z~| # Zip string bitwise or
                                          $_ # The list
                                          [R,] $_ # With its reverse





                                          share|improve this answer









                                          $endgroup$




                                          Perl 6, 74 bytes





                                          [R,] $_o.&


                                          Try it online!



                                          Literally creates a triangle with the right proportions and overlaps it with a upside-down copy using the string or operator (~|). Outputs as a list of lines with a leading and trailing line whitespace.



                                          Explanation:



                                           {.& # Anonymous code block
                                          ( )xx$_*3-($_>1) # Repeat n*3-(n!=1) times
                                          ' 'x--$+$_*3 # With a decreasing indentation
                                          ~'*'x$++*2+1 # Append an increasing triangle
                                          # This creates the triangle
                                          ,|($ xx$_) # And add some padding lines
                                          o # Pass the triangle to the combining function
                                          Z~| # Zip string bitwise or
                                          $_ # The list
                                          [R,] $_ # With its reverse






                                          share|improve this answer












                                          share|improve this answer



                                          share|improve this answer










                                          answered Apr 15 at 6:37









                                          Jo KingJo King

                                          27.3k365132




                                          27.3k365132





















                                              2












                                              $begingroup$


                                              J, 53 50 bytes



                                              ' *'~[:(+..)"1*@<:>:/~@i.@-~3*]


                                              Try it online!



                                              ungolfed



                                              ' *' ~ [: (+. .)"1 *@<: >:/~@i.@-~ 3 * ]


                                              how



                                              Use a function table (like a 3rd grade times table) to construct half the triangle by using >: (greater than or equal) as the function. Then reverse each row, chop of the last column, and stitch the two sides together to get the full triangle (but made of 1 and 0). Add n rows of zeros at the bottom. Finally reverse the whole thing, and overlay it on the original, using boolean or +. to get the result. Then turn the 1 to * and 0 to spaces.






                                              share|improve this answer











                                              $endgroup$












                                              • $begingroup$
                                                Nice! Here's my solution - same length, different approach: Try it online!
                                                $endgroup$
                                                – Galen Ivanov
                                                2 days ago






                                              • 1




                                                $begingroup$
                                                Thanks. It sure feels like it could be golfed more, but I tried a handful of other approaches and wasn't able to do it.
                                                $endgroup$
                                                – Jonah
                                                2 days ago















                                              2












                                              $begingroup$


                                              J, 53 50 bytes



                                              ' *'~[:(+..)"1*@<:>:/~@i.@-~3*]


                                              Try it online!



                                              ungolfed



                                              ' *' ~ [: (+. .)"1 *@<: >:/~@i.@-~ 3 * ]


                                              how



                                              Use a function table (like a 3rd grade times table) to construct half the triangle by using >: (greater than or equal) as the function. Then reverse each row, chop of the last column, and stitch the two sides together to get the full triangle (but made of 1 and 0). Add n rows of zeros at the bottom. Finally reverse the whole thing, and overlay it on the original, using boolean or +. to get the result. Then turn the 1 to * and 0 to spaces.






                                              share|improve this answer











                                              $endgroup$












                                              • $begingroup$
                                                Nice! Here's my solution - same length, different approach: Try it online!
                                                $endgroup$
                                                – Galen Ivanov
                                                2 days ago






                                              • 1




                                                $begingroup$
                                                Thanks. It sure feels like it could be golfed more, but I tried a handful of other approaches and wasn't able to do it.
                                                $endgroup$
                                                – Jonah
                                                2 days ago













                                              2












                                              2








                                              2





                                              $begingroup$


                                              J, 53 50 bytes



                                              ' *'~[:(+..)"1*@<:>:/~@i.@-~3*]


                                              Try it online!



                                              ungolfed



                                              ' *' ~ [: (+. .)"1 *@<: >:/~@i.@-~ 3 * ]


                                              how



                                              Use a function table (like a 3rd grade times table) to construct half the triangle by using >: (greater than or equal) as the function. Then reverse each row, chop of the last column, and stitch the two sides together to get the full triangle (but made of 1 and 0). Add n rows of zeros at the bottom. Finally reverse the whole thing, and overlay it on the original, using boolean or +. to get the result. Then turn the 1 to * and 0 to spaces.






                                              share|improve this answer











                                              $endgroup$




                                              J, 53 50 bytes



                                              ' *'~[:(+..)"1*@<:>:/~@i.@-~3*]


                                              Try it online!



                                              ungolfed



                                              ' *' ~ [: (+. .)"1 *@<: >:/~@i.@-~ 3 * ]


                                              how



                                              Use a function table (like a 3rd grade times table) to construct half the triangle by using >: (greater than or equal) as the function. Then reverse each row, chop of the last column, and stitch the two sides together to get the full triangle (but made of 1 and 0). Add n rows of zeros at the bottom. Finally reverse the whole thing, and overlay it on the original, using boolean or +. to get the result. Then turn the 1 to * and 0 to spaces.







                                              share|improve this answer














                                              share|improve this answer



                                              share|improve this answer








                                              edited Apr 16 at 2:42

























                                              answered Apr 16 at 2:13









                                              JonahJonah

                                              2,8281019




                                              2,8281019











                                              • $begingroup$
                                                Nice! Here's my solution - same length, different approach: Try it online!
                                                $endgroup$
                                                – Galen Ivanov
                                                2 days ago






                                              • 1




                                                $begingroup$
                                                Thanks. It sure feels like it could be golfed more, but I tried a handful of other approaches and wasn't able to do it.
                                                $endgroup$
                                                – Jonah
                                                2 days ago
















                                              • $begingroup$
                                                Nice! Here's my solution - same length, different approach: Try it online!
                                                $endgroup$
                                                – Galen Ivanov
                                                2 days ago






                                              • 1




                                                $begingroup$
                                                Thanks. It sure feels like it could be golfed more, but I tried a handful of other approaches and wasn't able to do it.
                                                $endgroup$
                                                – Jonah
                                                2 days ago















                                              $begingroup$
                                              Nice! Here's my solution - same length, different approach: Try it online!
                                              $endgroup$
                                              – Galen Ivanov
                                              2 days ago




                                              $begingroup$
                                              Nice! Here's my solution - same length, different approach: Try it online!
                                              $endgroup$
                                              – Galen Ivanov
                                              2 days ago




                                              1




                                              1




                                              $begingroup$
                                              Thanks. It sure feels like it could be golfed more, but I tried a handful of other approaches and wasn't able to do it.
                                              $endgroup$
                                              – Jonah
                                              2 days ago




                                              $begingroup$
                                              Thanks. It sure feels like it could be golfed more, but I tried a handful of other approaches and wasn't able to do it.
                                              $endgroup$
                                              – Jonah
                                              2 days ago











                                              2












                                              $begingroup$

                                              T-SQL, 194 bytes



                                              @ is the input value



                                              @c handles the width of the top triangle



                                              @d handles the width bottom triangle



                                              @e contains the output either @c or @d - this saves a few bytes



                                              @f handles the special case of 1 as input. @c*@=3 determines when to use @f. 5 bytes cheaper than writing @c=3and @=1



                                              DECLARE @ INT=8

                                              ,@c INT=1,@e INT=1,@d INT,@f INT=0SET @d=@*8-3r:PRINT
                                              space(@*3-@e/2+@f/2)+replicate('*',@e-@f)SELECT
                                              @c=nullif(@c,@*6-3)+2,@f=iif(@c*@=3,2,0),@d-=2-@f,@e=iif(@c>@d
                                              or @c/2<@,@c,@d)IF @d>0goto r


                                              Try it online






                                              share|improve this answer











                                              $endgroup$

















                                                2












                                                $begingroup$

                                                T-SQL, 194 bytes



                                                @ is the input value



                                                @c handles the width of the top triangle



                                                @d handles the width bottom triangle



                                                @e contains the output either @c or @d - this saves a few bytes



                                                @f handles the special case of 1 as input. @c*@=3 determines when to use @f. 5 bytes cheaper than writing @c=3and @=1



                                                DECLARE @ INT=8

                                                ,@c INT=1,@e INT=1,@d INT,@f INT=0SET @d=@*8-3r:PRINT
                                                space(@*3-@e/2+@f/2)+replicate('*',@e-@f)SELECT
                                                @c=nullif(@c,@*6-3)+2,@f=iif(@c*@=3,2,0),@d-=2-@f,@e=iif(@c>@d
                                                or @c/2<@,@c,@d)IF @d>0goto r


                                                Try it online






                                                share|improve this answer











                                                $endgroup$















                                                  2












                                                  2








                                                  2





                                                  $begingroup$

                                                  T-SQL, 194 bytes



                                                  @ is the input value



                                                  @c handles the width of the top triangle



                                                  @d handles the width bottom triangle



                                                  @e contains the output either @c or @d - this saves a few bytes



                                                  @f handles the special case of 1 as input. @c*@=3 determines when to use @f. 5 bytes cheaper than writing @c=3and @=1



                                                  DECLARE @ INT=8

                                                  ,@c INT=1,@e INT=1,@d INT,@f INT=0SET @d=@*8-3r:PRINT
                                                  space(@*3-@e/2+@f/2)+replicate('*',@e-@f)SELECT
                                                  @c=nullif(@c,@*6-3)+2,@f=iif(@c*@=3,2,0),@d-=2-@f,@e=iif(@c>@d
                                                  or @c/2<@,@c,@d)IF @d>0goto r


                                                  Try it online






                                                  share|improve this answer











                                                  $endgroup$



                                                  T-SQL, 194 bytes



                                                  @ is the input value



                                                  @c handles the width of the top triangle



                                                  @d handles the width bottom triangle



                                                  @e contains the output either @c or @d - this saves a few bytes



                                                  @f handles the special case of 1 as input. @c*@=3 determines when to use @f. 5 bytes cheaper than writing @c=3and @=1



                                                  DECLARE @ INT=8

                                                  ,@c INT=1,@e INT=1,@d INT,@f INT=0SET @d=@*8-3r:PRINT
                                                  space(@*3-@e/2+@f/2)+replicate('*',@e-@f)SELECT
                                                  @c=nullif(@c,@*6-3)+2,@f=iif(@c*@=3,2,0),@d-=2-@f,@e=iif(@c>@d
                                                  or @c/2<@,@c,@d)IF @d>0goto r


                                                  Try it online







                                                  share|improve this answer














                                                  share|improve this answer



                                                  share|improve this answer








                                                  edited 2 days ago

























                                                  answered Apr 14 at 22:19









                                                  t-clausen.dkt-clausen.dk

                                                  2,114414




                                                  2,114414





















                                                      1












                                                      $begingroup$


                                                      Japt -R, 25 bytes



                                                      +5 bytes for n=1 :



                                                      õ cUon3*U-´UÎ)®ç* êÃê!U û


                                                      Try it



                                                      õ cUon3*U-´UÎ)®ç* êÃê!U û :Implicit input of integer U
                                                      õ :Range [1,U]
                                                      c :Concatenate
                                                      Uo : Range [0,U)
                                                      n : Subtract each from
                                                      3*U- : Multiply U by 3 and subtract
                                                      ´U : Decrement U
                                                      Î : Get sign
                                                      ) :End concat
                                                      ® :Map each Z
                                                      ç* : Repeat "*" Z times
                                                      ê : Palindromise
                                                      Ã :End map
                                                      ê!U :If decremented U is 0, append reverse, else, palindromise
                                                      û :Centre pad each line with spaces to the length of the longest
                                                      :Implicitly join with newlines and output





                                                      share|improve this answer











                                                      $endgroup$

















                                                        1












                                                        $begingroup$


                                                        Japt -R, 25 bytes



                                                        +5 bytes for n=1 :



                                                        õ cUon3*U-´UÎ)®ç* êÃê!U û


                                                        Try it



                                                        õ cUon3*U-´UÎ)®ç* êÃê!U û :Implicit input of integer U
                                                        õ :Range [1,U]
                                                        c :Concatenate
                                                        Uo : Range [0,U)
                                                        n : Subtract each from
                                                        3*U- : Multiply U by 3 and subtract
                                                        ´U : Decrement U
                                                        Î : Get sign
                                                        ) :End concat
                                                        ® :Map each Z
                                                        ç* : Repeat "*" Z times
                                                        ê : Palindromise
                                                        Ã :End map
                                                        ê!U :If decremented U is 0, append reverse, else, palindromise
                                                        û :Centre pad each line with spaces to the length of the longest
                                                        :Implicitly join with newlines and output





                                                        share|improve this answer











                                                        $endgroup$















                                                          1












                                                          1








                                                          1





                                                          $begingroup$


                                                          Japt -R, 25 bytes



                                                          +5 bytes for n=1 :



                                                          õ cUon3*U-´UÎ)®ç* êÃê!U û


                                                          Try it



                                                          õ cUon3*U-´UÎ)®ç* êÃê!U û :Implicit input of integer U
                                                          õ :Range [1,U]
                                                          c :Concatenate
                                                          Uo : Range [0,U)
                                                          n : Subtract each from
                                                          3*U- : Multiply U by 3 and subtract
                                                          ´U : Decrement U
                                                          Î : Get sign
                                                          ) :End concat
                                                          ® :Map each Z
                                                          ç* : Repeat "*" Z times
                                                          ê : Palindromise
                                                          Ã :End map
                                                          ê!U :If decremented U is 0, append reverse, else, palindromise
                                                          û :Centre pad each line with spaces to the length of the longest
                                                          :Implicitly join with newlines and output





                                                          share|improve this answer











                                                          $endgroup$




                                                          Japt -R, 25 bytes



                                                          +5 bytes for n=1 :



                                                          õ cUon3*U-´UÎ)®ç* êÃê!U û


                                                          Try it



                                                          õ cUon3*U-´UÎ)®ç* êÃê!U û :Implicit input of integer U
                                                          õ :Range [1,U]
                                                          c :Concatenate
                                                          Uo : Range [0,U)
                                                          n : Subtract each from
                                                          3*U- : Multiply U by 3 and subtract
                                                          ´U : Decrement U
                                                          Î : Get sign
                                                          ) :End concat
                                                          ® :Map each Z
                                                          ç* : Repeat "*" Z times
                                                          ê : Palindromise
                                                          Ã :End map
                                                          ê!U :If decremented U is 0, append reverse, else, palindromise
                                                          û :Centre pad each line with spaces to the length of the longest
                                                          :Implicitly join with newlines and output






                                                          share|improve this answer














                                                          share|improve this answer



                                                          share|improve this answer








                                                          edited Apr 15 at 17:24

























                                                          answered Apr 14 at 22:13









                                                          ShaggyShaggy

                                                          19k21768




                                                          19k21768




















                                                              Michael Karas is a new contributor. Be nice, and check out our Code of Conduct.









                                                              draft saved

                                                              draft discarded


















                                                              Michael Karas is a new contributor. Be nice, and check out our Code of Conduct.












                                                              Michael Karas is a new contributor. Be nice, and check out our Code of Conduct.











                                                              Michael Karas is a new contributor. Be nice, and check out our Code of Conduct.














                                                              If this is an answer to a challenge…



                                                              • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                                                              • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                                                                Explanations of your answer make it more interesting to read and are very much encouraged.


                                                              • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.


                                                              More generally…



                                                              • …Please make sure to answer the question and provide sufficient detail.


                                                              • …Avoid asking for help, clarification or responding to other answers (use comments instead).




                                                              draft saved


                                                              draft discarded














                                                              StackExchange.ready(
                                                              function ()
                                                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f183174%2fstars-make-stars%23new-answer', 'question_page');

                                                              );

                                                              Post as a guest















                                                              Required, but never shown





















































                                                              Required, but never shown














                                                              Required, but never shown












                                                              Required, but never shown







                                                              Required, but never shown

































                                                              Required, but never shown














                                                              Required, but never shown












                                                              Required, but never shown







                                                              Required, but never shown







                                                              Popular posts from this blog

                                                              getting Checkpoint VPN SSL Network Extender working in the command lineHow to connect to CheckPoint VPN on Ubuntu 18.04LTS?Will the Linux ( red-hat ) Open VPNC Client connect to checkpoint or nortel VPN gateways?VPN client for linux machine + support checkpoint gatewayVPN SSL Network Extender in FirefoxLinux Checkpoint SNX tool configuration issuesCheck Point - Connect under Linux - snx + OTPSNX VPN Ububuntu 18.XXUsing Checkpoint VPN SSL Network Extender CLI with certificateVPN with network manager (nm-applet) is not workingWill the Linux ( red-hat ) Open VPNC Client connect to checkpoint or nortel VPN gateways?VPN client for linux machine + support checkpoint gatewayImport VPN config files to NetworkManager from command lineTrouble connecting to VPN using network-manager, while command line worksStart a VPN connection with PPTP protocol on command linestarting a docker service daemon breaks the vpn networkCan't connect to vpn with Network-managerVPN SSL Network Extender in FirefoxUsing Checkpoint VPN SSL Network Extender CLI with certificate

                                                              NetworkManager fails with “Could not find source connection”Trouble connecting to VPN using network-manager, while command line worksHow can I be notified about state changes to a VPN adapterBacktrack 5 R3 - Refuses to connect to VPNFeed all traffic through OpenVPN for a specific network namespace onlyRun daemon on startup in Debian once openvpn connection establishedpfsense tcp connection between openvpn and lan is brokenInternet connection problem with web browsers onlyWhy does NetworkManager explicitly support tun/tap devices?Browser issues with VPNTwo IP addresses assigned to the same network card - OpenVPN issues?Cannot connect to WiFi with nmcli, although secrets are provided

                                                              대한민국 목차 국명 지리 역사 정치 국방 경제 사회 문화 국제 순위 관련 항목 각주 외부 링크 둘러보기 메뉴북위 37° 34′ 08″ 동경 126° 58′ 36″ / 북위 37.568889° 동경 126.976667°  / 37.568889; 126.976667ehThe Korean Repository문단을 편집문단을 편집추가해Clarkson PLC 사Report for Selected Countries and Subjects-Korea“Human Development Index and its components: P.198”“http://www.law.go.kr/%EB%B2%95%EB%A0%B9/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EA%B5%AD%EA%B8%B0%EB%B2%95”"한국은 국제법상 한반도 유일 합법정부 아니다" - 오마이뉴스 모바일Report for Selected Countries and Subjects: South Korea격동의 역사와 함께한 조선일보 90년 : 조선일보 인수해 혁신시킨 신석우, 임시정부 때는 '대한민국' 국호(國號) 정해《우리가 몰랐던 우리 역사: 나라 이름의 비밀을 찾아가는 역사 여행》“남북 공식호칭 ‘남한’‘북한’으로 쓴다”“Corea 대 Korea, 누가 이긴 거야?”국내기후자료 - 한국[김대중 前 대통령 서거] 과감한 구조개혁 'DJ노믹스'로 최단기간 환란극복 :: 네이버 뉴스“이라크 "韓-쿠르드 유전개발 MOU 승인 안해"(종합)”“해외 우리국민 추방사례 43%가 일본”차기전차 K2'흑표'의 세계 최고 전력 분석, 쿠키뉴스 엄기영, 2007-03-02두산인프라, 헬기잡는 장갑차 'K21'...내년부터 공급, 고뉴스 이대준, 2008-10-30과거 내용 찾기mk 뉴스 - 구매력 기준으로 보면 한국 1인당 소득 3만弗과거 내용 찾기"The N-11: More Than an Acronym"Archived조선일보 최우석, 2008-11-01Global 500 2008: Countries - South Korea“몇년째 '시한폭탄'... 가계부채, 올해는 터질까”가구당 부채 5000만원 처음 넘어서“‘빚’으로 내몰리는 사회.. 위기의 가계대출”“[경제365] 공공부문 부채 급증…800조 육박”“"소득 양극화 다소 완화...불평등은 여전"”“공정사회·공생발전 한참 멀었네”iSuppli,08年2QのDRAMシェア・ランキングを発表(08/8/11)South Korea dominates shipbuilding industry | Stock Market News & Stocks to Watch from StraightStocks한국 자동차 생산, 3년 연속 세계 5위자동차수출 '현대-삼성 웃고 기아-대우-쌍용은 울고' 과거 내용 찾기동반성장위 창립 1주년 맞아Archived"중기적합 3개업종 합의 무시한 채 선정"李대통령, 사업 무분별 확장 소상공인 생계 위협 질타삼성-LG, 서민업종인 빵·분식사업 잇따라 철수상생은 뒷전…SSM ‘몸집 불리기’ 혈안Archived“경부고속도에 '아시안하이웨이' 표지판”'철의 실크로드' 앞서 '말(言)의 실크로드'부터, 프레시안 정창현, 2008-10-01“'서울 지하철은 안전한가?'”“서울시 “올해 안에 모든 지하철역 스크린도어 설치””“부산지하철 1,2호선 승강장 안전펜스 설치 완료”“전교조, 정부 노조 통계서 처음 빠져”“[Weekly BIZ] 도요타 '제로 이사회'가 리콜 사태 불러들였다”“S Korea slams high tuition costs”““정치가 여론 양극화 부채질… 합리주의 절실””“〈"`촛불집회'는 민주주의의 질적 변화 상징"〉”““촛불집회가 민주주의 왜곡 초래””“국민 65%, "한국 노사관계 대립적"”“한국 국가경쟁력 27위‥노사관계 '꼴찌'”“제대로 형성되지 않은 대한민국 이념지형”“[신년기획-갈등의 시대] 갈등지수 OECD 4위…사회적 손실 GDP 27% 무려 300조”“2012 총선-대선의 키워드는 '국민과 소통'”“한국 삶의 질 27위, 2000년과 2008년 연속 하위권 머물러”“[해피 코리아] 행복점수 68점…해외 평가선 '낙제점'”“한국 어린이·청소년 행복지수 3년 연속 OECD ‘꼴찌’”“한국 이혼율 OECD중 8위”“[통계청] 한국 이혼율 OECD 4위”“오피니언 [이렇게 생각한다] `부부의 날` 에 돌아본 이혼율 1위 한국”“Suicide Rates by Country, Global Health Observatory Data Repository.”“1. 또 다른 차별”“오피니언 [편집자에게] '왕따'와 '패거리 정치' 심리는 닮은꼴”“[미래한국리포트] 무한경쟁에 빠진 대한민국”“대학생 98% "외모가 경쟁력이라는 말 동의"”“특급호텔 웨딩·200만원대 유모차… "남보다 더…" 호화病, 고질병 됐다”“[스트레스 공화국] ① 경쟁사회, 스트레스 쌓인다”““매일 30여명 자살 한국, 의사보다 무속인에…””“"자살 부르는 '우울증', 환자 중 85% 치료 안 받아"”“정신병원을 가다”“대한민국도 ‘묻지마 범죄’,안전지대 아니다”“유엔 "학생 '성적 지향'에 따른 차별 금지하라"”“유엔아동권리위원회 보고서 및 번역본 원문”“고졸 성공스토리 담은 '제빵왕 김탁구' 드라마 나온다”“‘빛 좋은 개살구’ 고졸 취업…실습 대신 착취”원본 문서“정신건강, 사회적 편견부터 고쳐드립니다”‘소통’과 ‘행복’에 목 마른 사회가 잠들어 있던 ‘심리학’ 깨웠다“[포토] 사유리-곽금주 교수의 유쾌한 심리상담”“"올해 한국인 평균 영화관람횟수 세계 1위"(종합)”“[게임연중기획] 게임은 문화다-여가활동 1순위 게임”“영화속 ‘영어 지상주의’ …“왠지 씁쓸한데””“2월 `신문 부수 인증기관` 지정..방송법 후속작업”“무료신문 성장동력 ‘차별성’과 ‘갈등해소’”대한민국 국회 법률지식정보시스템"Pew Research Center's Religion & Public Life Project: South Korea"“amp;vwcd=MT_ZTITLE&path=인구·가구%20>%20인구총조사%20>%20인구부문%20>%20 총조사인구(2005)%20>%20전수부문&oper_YN=Y&item=&keyword=종교별%20인구& amp;lang_mode=kor&list_id= 2005년 통계청 인구 총조사”원본 문서“한국인이 좋아하는 취미와 운동 (2004-2009)”“한국인이 좋아하는 취미와 운동 (2004-2014)”Archived“한국, `부분적 언론자유국' 강등〈프리덤하우스〉”“국경없는기자회 "한국, 인터넷감시 대상국"”“한국, 조선산업 1위 유지(S. Korea Stays Top Shipbuilding Nation) RZD-Partner Portal”원본 문서“한국, 4년 만에 ‘선박건조 1위’”“옛 마산시,인터넷속도 세계 1위”“"한국 초고속 인터넷망 세계1위"”“인터넷·휴대폰 요금, 외국보다 훨씬 비싸”“한국 관세행정 6년 연속 세계 '1위'”“한국 교통사고 사망자 수 OECD 회원국 중 2위”“결핵 후진국' 한국, 환자가 급증한 이유는”“수술은 신중해야… 자칫하면 생명 위협”대한민국분류대한민국의 지도대한민국 정부대표 다국어포털대한민국 전자정부대한민국 국회한국방송공사about korea and information korea브리태니커 백과사전(한국편)론리플래닛의 정보(한국편)CIA의 세계 정보(한국편)마리암 부디아 (Mariam Budia),『한국: 하늘이 내린 한 폭의 그림』, 서울: 트랜스라틴 19호 (2012년 3월)대한민국ehehehehehehehehehehehehehehWorldCat132441370n791268020000 0001 2308 81034078029-6026373548cb11863345f(데이터)00573706ge128495