Introducción
Como se sabe, en 2017, Finlandia celebra sus 100 años de independencia. Para celebrar la ocasión, es su trabajo producir una bandera finlandesa para el disfrute de todos.
Reto
Cree un programa o una función que produzca la bandera de Finlandia (el borde gris está ahí solo para fines de presentación):
Especificaciones de la bandera
- La relación de la bandera es
18:11
, con la cruz siendo3
unidades gruesas, dando un conjunto de relación horizontal de5:3:10
y un conjunto de relación vertical de4:3:4
. - La imagen debe tener al menos
180 x 110
píxeles de tamaño o, en el caso de arte ASCII,90 x 55
caracteres. - No hay un color RGB oficial para el azul, pero use la aproximación más cercana de
(0, 53, 128)
. Si su sistema no admite valores RGB, useblue
. - Para el color blanco, use RGB
(255, 255, 255)
owhite
.
No tan rapido
Como dibujar la bandera nacional finlandesa sería más sencillo que el desafío islandés del año pasado , tendremos que aumentar un poco la dificultad. Dado que el Día de la Independencia de Finlandia es el 6 de diciembre, el número decimal 100
debe aparecer en algún lugar de la bandera cuando la fecha en Finlandia ( UTC + 02: 00 ) es 2017-12-06
o posterior (su código no debe suponer que la máquina en la que se está ejecutando está configurada en zona horaria particular). Antes de la fecha, el número no debe estar allí. El número debe imprimirse en negro (RGB (0, 0, 0)
o black
), pero su ubicación y los parámetros de fuente dependen de usted.
Un ejemplo de tal render (nuevamente, ignore el borde):
Para fines de prueba, sería bueno incluir dos versiones adicionales de su solución, una con una fecha fija en el pasado y otra en el futuro.
Reglas
Las lagunas estándar están prohibidas, al igual que las imágenes / bibliotecas de banderas incorporadas. Además, su código no debe tomar ninguna entrada.
A los finlandeses no les gusta conversar, y este es el golf de código , ¡así que no desperdicien personajes!
fuente
#
en el caso del arte ASCII ? ¿Y luego insertar los personajes en100
alguna parte?Respuestas:
C (Windows), 361 bytes
Desenrollado:
Salida:
Salida cuando
UTC time >= 2017-12-05-22-00
:Agregue lo siguiente en el código después
d=gmtime(&n);
para probarlo:fuente
PHP + SVG (HTML5),
147137123 bytesCódigo SVG de Neil
https://codegolf.stackexchange.com/a/149850/66061
Actualización: Gracias a Shaggy por ayudarme a ahorrar 10 bytes.
Actualización 2: idea inteligente de Ismael Miguel , gracias por guardar 14 bytes
Normal
Después del 6 de diciembre +2 horas
fuente
time()
da UTC?1512525600
?1512525600
es2017-12-06T02:00:00+00:00 in ISO 8601
@ Adám y sí, time () es independiente de la zona horaria.Röda ,
252250 bytesPruébalo en línea!
fuente
C #,
407400277 bytesRaro como
ForegroundColor =0
esta permitidoGuardado 1 byte gracias a TuukkaX
Guardado 67 bytes gracias a Adam
no golfed para probar:
para probar 100:
fuente
ForegroundColor = 0
está permitido porque el literal0
es convertible a cualquier tipo de enumeración, como está escrito en la especificación C # .Mathematica, 129 bytes
antes ... después ...
siempre puedes probarlo en Wolfram Sandbox
(pega el código y presiona Shift-Enter)
fuente
3721507200
?Python 2 ,
247246230210189 bytesPruébalo en línea!
Imprime una imagen .ppm:
Bandera normal
Bandera con 100
fuente
datetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)
puede reemplazar condatetime.utcnow()>=datetime(2017,12,05,22,0,0)
o algo similar?time.gmtime
lugar para comparaciones de tuplas (vea mi respuesta)!Python 3,
143141135 bytesUtiliza escape ANSI para colores, usa cinco espacios o "100" como una cadena de color para que no necesite imprimir especialmente "100" en algún lugar de la bandera. Longitud 5 por ancho, porque
90/5 == 90//5
. La cadena que se está utilizando se está definiendo en la fila 1. Luego iteramos 55 vueltas (altura), en cada iteraciónv
se establece en una cadena con color [Blue, BrightWhite] y el índice seleccionado es booleanorow<20 or r>34
. Multiplicamos ese resultado por 5 nuevamente (dimensiones de ancho: 25:15:50, por lo que el ancho total es 90). Luego imprimimosv + Blue + Blue + Blue + v + v + Black
dóndev
está Azul o Blanco Brillante. Para aclarar la impresión: el anchov
es de 25 caracteres, el ancho de Azul (e%44*3
) es de 15 y el ancho dev*2
es de 50.25+15+50
es 90, que es el ancho y sigue las dimensiones requeridas en la tarea! Resumen bastante desordenado pero supongo que es mejor que nada.fuente
Processing.org / Java
191188 bytes-3 bytes gracias a KevinCruijssen
fuente
>15125255999999L
puede ser>=15125256e6
15125256e6
es15125256000000
cuando lo pruebo en Java 8. Pero no sé Processing.org, ¿entonces quizás es un poco diferente o está usando una versión diferente?Aquí hay un TIO con algunas pruebas básicas15125256e6
para verificar que funciona en Java 8. Pero me alegro de queD
después lo corrija. Me alegro de poder ayudar. :)Excel VBA,
120118117 BytesFunción de ventana inmediata anónima VBE que no toma entrada y emite la bandera finlandesa y si Finlandia tiene más de 100 años, una
100
en esa bandera. Esto se hace con respecto a la zona horaria de Pascua de los Estados Unidos, ya que no hay forma de que Excel o Excel VBA determinen la zona horaria sin complementos o sin acceder a Internet.Salida
Si Finlandia es menor de 100 años
Si Finlandia tiene más de 100 años
-2 Byte para cambiar
If #12/5/17 19:00#<=Now Then[B2]=100
aIf Now>=#12/5/17 19:0#Then[B2]=100
-1 Byte para uso en
Cells
lugar de[A1:R11]
fuente
MATLAB,
133130123 bytes310 bytes sabed gracias por @flawr!Esto se usa
[0, 51, 128]
para el color azul. El tamaño de la imagen es de 180 × 110 píxeles.Ejecución de muestra:
Ejecución de muestra con el texto (cambiando
737035
a0
en el código para que el texto se muestre en cualquier día):fuente
JavaScript (ES5) + SVG (HTML5),
189179 bytes(HTML para mostrar que se están cumpliendo los requisitos de color). Editar: Guardado 10 bytes gracias a @Shaggy. Salidas:
fuente
Date.now()
está en UTC, y lo comparo con el valor UTC de2017/12/06 00:00:00 UTC+2
.<path></path>
con<path/>
para guardar algunos bytes.Python 3 con Pillow,
213212211 caracteres (Unix) y217216 caracteres (Portátil)Esta es la versión de Unix. Después de publicar me di cuenta de que el tiempo devuelto por
time()
no necesariamente tiene su época el 1 de enero de 1970, por lo que no es necesariamente portátil.Este es el código portátil, 4 bytes más, se usa
gmtime
con la comparación de tuplas, por lo que también debería funcionar de manera confiable en Windows.Las imágenes se muestran en una ventana. Realmente difícil hacer que consuma menos personajes. Incluso
time.time
devuelve un valorfloat
así>0x5a273299
que no sería tan correcto, o>0x5a273300
estaría apagado por un microsegundo.fuente
Tcl / Tk , 135 bytes
Debe ejecutarse en el shell interactivo
Antes del 2017/12/06 02:00 GMT
Después del 06/12/2017 02:00 GMT
fuente
Java
342368361321317 (299 + 18) bytesGolfed
Sin golf
Resultado
Créditos
40 bytes guardados por Olivier Grégoire por usar lambda.
4 bytes guardados por Kevin Cruijssen para el formato largo.
2 bytes guardados por el usuario 902383 para el formato hexadecimal.
fuente
true
s con1>0
,args
cona
, y puede eliminar los espacios en torno=
aP j = new...
ahorrar unos pocos bytes.import java.awt.*;
), con la condición incluida.import
. 2. los nombres de las variables no se acortan:args
se pueden reducir aa
. 3. todavía hay espacios opcionales que están contenidos en la entrada. 4. no hay impresión condicional de "100".vim, 147
Realmente me gusta este desafío ☺. © es escape.
fuente
bash e imagemagick, 135
fuente
((`date +%s`>=1512511200))&&x=100
. Tenga en cuenta que moví las comillas simples dentro del-draw
parámetro, donde no necesitan escapar.Tampio imperativo , 239 bytes (no competidor)
Versión en línea
Traducción:
SVG fue tomado de esta respuesta by th3pirat3 (and Neil, appearently).
Este programa está escrito en una nueva versión de Tampio en la que he estado trabajando. Aquellos de ustedes que saben finlandés pueden ver que es casi legible. Marqué la respuesta como no competitiva porque este idioma fue publicado después de este desafío.
Para ejecutar este programa, vaya a la versión en línea anterior que contiene la versión JS compilada del programa o descargue el compilador de su página de Github . Para compilar el programa, ejecute
python3 tampio.py -p program.itp >program.html
.Tampio no es un lenguaje de golf en ninguna medida, pero debido al mejor código svg, en realidad venció a Röda ... Me sorprendió un poco.
fuente
bash, 198
fuente
HTML + CSS + Javascript, 339 bytes
Aquí está la misma solución recortada a 260 bytes, lo que supone que su puerto de visualización tiene la proporción 18:11 adecuada.
Puede eliminar un 0 de la marca de tiempo en cualquiera de las soluciones para ver aparecer el "100".
fuente
HTML + Javascript, 329 bytes
Desvergonzadamente robé la parte de verificación de fecha de @jstnthms. Básicamente, solo escribo una tabla html cruda con las relaciones correctas de fila / col,
th
siendo las partes azules. Probado en IE y Chrome, también en mee.fi -site .fuente
Perl 5, 139 bytes
para ser lanzado
la relación se cambió debido a la relación de caracteres alto / ancho = 1.66 (5/3) de lo contrario con la relación original:
fuente
Raqueta 6.10 con 2htdp / imagen, 202 bytes
Sin golf:
fuente
100
en una parte azul, casi lo pierdo.Pequeño Básico , 300 bytes
Un script que no toma entradas y salidas al
TextWindow
objeto.¡Pruébelo en SmallBasic.com! Requiere IE / Silverlight
Salida
Se muestra después del centésimo día de la independencia de Finlandia.
fuente
el código hecho anteriormente se ha reducido a lo siguiente:
HTML, CSS y JavaScript, 1599 bytes
fuente
===
and100
).HTML + JavaScript, 247 bytes
fuente
JavaScript ES6, 532 bytes
Decided to try using a Base64 image to see how short I could get it. Not a winner, but interesting nonetheless.
fuente
${(…)}
→${…}
); no need for double quotes around those HTML attribute values; although invalid, in most cases you can cut off the base64 encoded strings's padding with equal signs (Firefox has certainly no problem decoding it).