Desafío temático especial del Día de la Independencia (EE. UU.) Para ti hoy. Debe escribir un programa que imprima esta representación de arte ascii de La bandera estadounidense.
0
|---------------------------------------------------------
| * * * * * * #################################|
| * * * * * |
| * * * * * * |
| * * * * * #################################|
| * * * * * * |
| * * * * * |
| * * * * * * #################################|
| * * * * * |
| * * * * * * |
|########################################################|
| |
| |
|########################################################|
| |
| |
|########################################################|
| |
| |
|########################################################|
|---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Se permiten espacios finales en cada línea, así como una nueva línea final.
Tenga en cuenta que esta no es la forma en que debería verse la bandera, pero es lo más cerca que podría estar con ASCII.
Como de costumbre, este es el código de golf, por lo que se aplican las lagunas estándar y gana la respuesta más corta en bytes.
code-golf
ascii-art
kolmogorov-complexity
DJMcMayhem
fuente
fuente
Respuestas:
CJam,
18412010910176746967646258 bytesPruébelo en línea en el intérprete de CJam .
Idea
La parte más interesante de la bandera es el patrón de barras y estrellas.
Si repetimos dos espacios y un signo de número 56 veces y agregamos una barra vertical a cada uno, obtenemos
Repitiendo este patrón 7 veces y descartando las dos primeras líneas, obtenemos las rayas:
Ahora, si repetimos la cadena
" * "
50 veces y dividimos el resultado en trozos de longitud 22, obtenemos las estrellas:El espacio en blanco está un poco apagado, pero podemos solucionarlo eliminando el último fragmento y agregando un espacio a los restantes.
Ahora, si superponemos rayas y estrellas, obtenemos
Todo lo que queda por hacer es agregar dos líneas de 57 guiones, agregar una columna de 37 barras verticales y poner la guinda en la parte superior.
Código
fuente
Python 2, 113 bytes
Corte de cuerdas y cheques de módulo en abundancia.
fuente
i=0
se imprime el valor .Brainf ** k,
3355311315981178782 bytes¿Que idioma es este?
Aquí está la versión optimizada para la mano con 28 bucles. Creo que he llevado esto lo más lejos posible.
Aquí está la carrera en ideone.com :
¿Como funciona esto?
Este programa usa 10 ubicaciones de memoria:
Línea 1
+++[>++++<-]
. Entonces el resultado final es que el registro 0 es 0, y el registro 1 es 12."0"
en la parte superior de la bandera!Línea 2
"|"
(ASCII 124) y lo genera."0"
(ASCII 48) a"-"
(ASCII 45) y lo emite.Línea 3
" * "
5 veces." * "
se escribe"#"
para un total de 32."#"
,"|"
y"\n"
están escritos.Líneas 4 - 11
Línea 12
Línea 13
"#"
8 veces cada vez a través del bucle.Línea 14
Línea 15
" "
8 veces cada vez a través del bucle.Línea 16
Línea 17
Línea 18
Línea 19
Línea 20
"|"
y nueva línea dos veces cada vez a través del bucle.fuente
/// : 225 caracteres
fuente
JavaScript ( ES6 ), 153
156Usando una cadena de plantilla, hay 1 nueva línea que es significativa y contada
Pruebe a ejecutar el fragmento a continuación (siendo EcmaScript 6, solo Firefox)
Para ser aún más patriótico, aquí está la versión EcmaScript 5
fuente
Ruby,
104102 bytesUsando ideas de la respuesta de Ruby de ManAtWork con permiso.
Ruby,
127121121bytesSe cambiaron las comillas a la
?
matriz utilizada en lugar de condicional para el color de la franja. usado condicional en lugar de fórmula para la longitud de la franja.El truco aquí es dibujar las rayas (tanto rojas /
#
como blancas /space
) a la longitud correcta, luego justificarlas a la derecha, rellenando con estrellas. Ruby'srjust
nos permite especificar la cadena de relleno, que alterna entre" * "
y" *"
.Versión original, 127 bytes
fuente
map
en el medio de laputs
pero no puedo usarlo por sí solo, aunque lo rodean con paréntesis:puts((0.18).map{})
. Si ve alguna mejora adicional, avíseme o recupere su propia respuesta y publíquela allí.rjust
pueda tomar una cuerda y no solo un char. Lástima que Python no pueda hacer eso ...SWI-Prolog, 275 bytes
En un idioma de origen francés, que es algo apropiado
Mira el resultado aquí
fuente
C,
235211208205203198197186 byteseditar: agregó algunas de las sugerencias de Cool Guy e hizo uso de?: para reemplazar algunas declaraciones if.
edit: eliminó la prevención de desbordamiento \ 0 y usó el limitador de longitud de cadena en printf.
editar: reelaborado ambos condicionales memset.
editar: movió put ("0") dentro del encabezado for para eliminar su punto y coma.
editar: leve refactorización para obtener 11 bytes más.
fuente
|
al comienzo de cada línea ...i;c(){puts("0");for(;i<37;i++){char b[58]="|";if(i<21){memset(b,!((i-1)%3)?35:32,56);if(i<10)memcpy(b," * * * * * * "+((i%2)?0:2),23);b[56]='|';}if(!i||i==20){memset(b,45,57);}puts(b);}}
45
en lugar de'-'
y35
en lugar de'#'
y32
en lugar de' '