Écrivez un programme ou une fonction qui dessine une étoile ASCII, étant donné la taille des bras en entrée.
Voici une étoile de taille 1
_/\_
\ /
|/\|
Voici une étoile de taille 2
/\
__/ \__
\ /
\ /
| /\ |
|/ \|
Voici une étoile de taille 3
/\
/ \
___/ \___
\ /
\ /
\ /
| /\ |
| / \ |
|/ \|
Etc.
Contribution
Un seul entier positif dans un format pratique , n > 0
.
Production
Une représentation ASCII d'une étoile, suivant les règles ci-dessus. Les sauts de ligne de début / fin ou d'autres espaces sont facultatifs, à condition que les points s'alignent correctement.
Règles
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
Réponses:
Fusain ,
2017 octets-3 octets grâce à Neil.
Essayez-le en ligne!Le lien est vers la version détaillée.
Je suis assez content de ce golf alors ...
Explication
la source
Polygon
... Suis-je en train de faire quelque chose de mal?Polygon
laisse le curseur sur le dernier caractère, mais je n'utilisais pasPolygon
... en fait, je n'utilisais pas non plus le meilleur code, j'ai maintenant 17 ans.Move(:Right); for (n) Print("_");
.SOGL V0.12 ,
2724 octetsEssayez-le ici!
Explication:
la source
Python 2 ,
166 160 157 157 155152 octetsL'
exec
approche est exactement le même nombre d'octets.Essayez-le en ligne!
Enregistré 3 octets grâce à Jonathan Frech .
la source
t=" ";y,z=t*2,"\\"
part,z=" \\";y=t+t
.Java 8,
385376344304285280268264252250+ 19octetsEssayez-le en ligne!
la source
int o=
extérieur de la boucle ( 268 octets )++
directement la dernière occurrence dei
, comme ceci: 264 octets .Mathematica, 189 octets
La ligne 2 définit l'opérateur d'assistance
±
, qui est utilisé pour faire évaluer la ligne 4 à:À la ligne 3, le
ReplaceAll
(/.
) prend une matrice représentant l'étoile de taille 1 ainsi que la liste des règles ci-dessus. Pour les étapes finales, nous utilisonsArrayFlatten
, qui est plus court queSubstitutionSystem
, etStringRiffle
.la source
Java 7, 295 octets
La solution est la méthode
f
.Essayez-le en ligne (JDK 8)
Non golfé
Remerciements
la source
x
de 1 dès le début:<T>String s(T s,int n){return"".format("%"+-~n+"s",s);}String f(int x){String n="\n",s="/",b="\\",o="",u="_";int i=0;for(x--;i<x;u+="_")o+=s(s,2*x-i+1)+s(b,2*i++)+n;o+=u+s+s(b,2*i++)+u+n;for(;i-->0;)o+=s(b,x-i)+s(s,4*x-2*(x+~i))+n;for(;++i<=x;)o+=s("|",x)+s(s,x-i)+s(b,2*i)+s("|",x-i)+n;return o;}
Python 2 , 137 octets
Essayez-le en ligne!
la source