Escriba un programa o función que dibuje una estrella ASCII, dado el tamaño de los brazos como entrada.
Aquí hay una estrella de tamaño 1
_/\_
\ /
|/\|
Aquí hay una estrella de tamaño 2
/\
__/ \__
\ /
\ /
| /\ |
|/ \|
Aquí hay una estrella de tamaño 3
/\
/ \
___/ \___
\ /
\ /
\ /
| /\ |
| / \ |
|/ \|
Y así.
Entrada
Un número entero positivo solo en cualquier formato conveniente , n > 0
.
Salida
Una representación de una estrella en el arte ASCII, siguiendo las reglas anteriores. Las nuevas líneas iniciales / finales u otros espacios en blanco son opcionales, siempre que los puntos se alineen adecuadamente.
Reglas
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
Respuestas:
Carbón ,
2017 bytes-3 bytes gracias a Neil.
Pruébalo en línea! El enlace es a la versión detallada.
Estoy bastante contento con este golf, así que ...
Explicación
fuente
Polygon
... ¿Estoy haciendo algo mal?Polygon
deja el cursor en el último carácter, pero no estaba usandoPolygon
... de hecho tampoco estaba usando el mejor código, ahora tengo 17.Move(:Right); for (n) Print("_");
.SOGL V0.12 ,
2724 bytesPruébalo aquí!
Explicación:
fuente
Python 2 ,
166160157155152byteslos
exec
enfoque es exactamente el mismo recuento de bytes.Pruébalo en línea!
Guardado 3 bytes gracias a Jonathan Frech .
fuente
t=" ";y,z=t*2,"\\"
cont,z=" \\";y=t+t
.Java 8,
385376344304285280268264252250+ 19bytesPruébalo en línea!
fuente
int o=
exterior del bucle ( 268 bytes )++
directamente en la última aparición dei
, por ejemplo: 264 bytes .Mathematica, 189 bytes
La línea 2 define el operador auxiliar
±
, que se utiliza para hacer que la línea 4 evalúe para:En la línea 3,
ReplaceAll
(/.
) toma una matriz que representa la estrella de tamaño 1, así como la lista de reglas anterior. Para los pasos finales, usamosArrayFlatten
, que es más corto queSubstitutionSystem
, yStringRiffle
.fuente
Java 7, 295 bytes
La solución es el método
f
.Pruébelo en línea (JDK 8)
Sin golf
Expresiones de gratitud
fuente
x
en 1 desde el principio:<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 bytes
Pruébalo en línea!
fuente