Tarea: Mostrar la bandera suiza.
Feliz Día Nacional de Suiza / Schweizer Bundesfeiertag / Fête nationale suisse / Festa nazionale svizzera / Fiasta naziunala svizra!
Detalles:
La bandera consiste en una #FFFFFF
cruz blanca ( ) sobre un #FF0000
fondo rojo ( ). La cruz consiste en un cuadrado de 6x6 con brazos de tamaño 6x7 pegados a cada lado. La cruz está en el centro del fondo cuadrado de 32x32 y tiene una distancia de 6 unidades a cada lado. ( Fuente )
El participante puede elegir el tamaño de salida, pero la imagen debe coincidir exactamente con estas proporciones, esto significa que su tamaño debe ser un múltiplo de 32.
Una versión mínima se vería así:
echo 🇨🇭
- Asumo que esto no está permitidoRespuestas:
SVG (HTML5),
94838264 bytesGuardado 2 bytes gracias a @ThePirateBay. Guardado 1 byte gracias a @ATaco. Ahorró 18 bytes gracias a @CraigAyre que señaló que una imagen de 32 × 32 era aceptable. Como señaló @Shaggy, esto supone que su fondo predeterminado es blanco; agregue 22 bytes para una bandera que funcione en cualquier fondo:
fuente
>
en su etiqueta de ruta es opcional.viewBox
para la versión mínima?<svg><path d=M0,0V32H32V0M6,13h7V6h6v7h7v6H19v6H13V19H6 fill=red
Código de máquina x86-16 para DOS, 43 bytes
El código anterior está diseñado para ensamblarse como un archivo COM y luego ejecutarse bajo DOS. Invoca los servicios de video ROM BIOS para trazar los píxeles individuales de la bandera, formando una representación de 32 × 32 de la bandera suiza en la esquina superior izquierda de la pantalla.
El código supone que el modo de video ya está configurado en modo 0x13, lo que también significa que requiere una pantalla VGA. Se podrían usar otros modos de video, pero requerir VGA le da dos cosas: (1) píxeles cuadrados y (2) una paleta predeterminada que incluye un verdadero rojo 100% (
0xFF0000
) (lo que significa que no tiene que perder bytes cambiando la paleta colores). Antes de ejecutar este programa, deberá cambiar su pantalla al modo 0x13; el siguiente código es todo lo que necesitas para hacer eso:El código no hace otras suposiciones y debe ejecutarse en cualquier hardware compatible con x86 en un sistema operativo compatible con DOS.
Sin embargo, el programa finaliza inmediatamente después de dibujar la bandera, por lo que la solicitud de DOS normalmente se volverá a imprimir en la esquina superior izquierda de la pantalla, cubriendo las pocas líneas superiores de la bandera. Por lo tanto, si desea maravillarse con la salida real, debe colgar / pausar el sistema antes de que se
RET
active. Aquí hay una captura de pantalla de cómo se ve, ejecutándose en una máquina virtual FreeDOS:Es posible que esto se reduzca aún más al escribir datos de píxeles directamente en el búfer de video, especialmente porque ya estoy asumiendo el modo 0x13. Aún no lo he intentado.
INT 0x10
ya es una instrucción bastante corta, pero si puedo usar las instrucciones de cadena de un byte para escribir datos de píxeles directamente en la memoria, eso podría generar un importante ahorro de código.fuente
MATL , 29 bytes
¡Pruébalo en MATL Online!
Explicación
fuente
Java 8, 246 + 42 = 288 bytes
Gracias a @Aaron por -64 bytes.
-4 bytes enviando al archivo
a
sin extensión.Una expresión lamba que se puede asignar a un método de interfaz funcional que arroja una excepción. Crea un archivo de imagen llamado
a
(un archivo de imagen) en el directorio que ejecuta este archivo.Código circundante utilizado para ejecutarlo: ¡ Pruébelo en línea!
Sin golf
Resultado
Rejilla proporcionada por la vista previa de la imagen IntelliJ IDEA (aparentemente).
fuente
fillPolygon
llamada en dosfillRect
llamadas. No estoy seguro de respetar las dimensiones, pero se me ocurrióg.fillRect(7,13,18,6);g.fillRect(13,7,6,18)
que es más corto en 64 bytes.png
lugar dea.png
guardar un byte.a
, sin una extensión? Todavía se puede abrir, solo necesita que le digan que se abra en un visor de fotos.Excel VBA,
868579 BytesCódigo
Función de ventana inmediata anónima VBE que no toma entrada y emite la bandera suiza en el rango
[A1:F32]
delActiveSheet
objeto. Esto funciona haciendo primero las celdas cuadradas, luego dibujando la región roja y finalmente dibujando en la cruz blanca.Tenga en cuenta que los arreglos que eliminan el paso de colorear la "cruz" de la bandera suiza después de poner el fondo rojo son en realidad más largos que la configuración anterior, ya que requieren al menos 16 direcciones de celda, que se coordinan con las 8 regiones distintas de la bandera
-1 Byte gracias a @ Greedo's por
RowHeight=48
más deColumnWidth=2
-6 Bytes gracias a @ Greedo's por su
-1
lugarrgbWhite
Salida
fuente
Interior.Color=-1
lugar deInterior.Color=rgbWhite
rgbWhite
más de su valor decimal de16777215
claridad, no tenía idea de que-1
tendría el mismo efecto. ¡Gracias!C ++, SFML,
406399394 bytes-2 bytes gracias a pdpi
-10 bytes gracias a Zacharý
SFML (Simple and Fast Multimedia Library) es una biblioteca C ++ escrita para facilitar el desarrollo de videojuegos y programas multimedia.
El código :
La bandera se muestra en una ventana de 128x128. Su sistema operativo debe poder mostrar una ventana de 128x128 (mi Win8.1 no se puede mostrar con un ancho más pequeño)
ADVERTENCIA : es posible que desee agregar estas 2 líneas de código:
t.setFramerateLimit(60);t.setVerticalSyncEnabled(true);
para que su CPU no se caliente cuando ejecuta el código. No los puse en el código original por razones de golf.fuente
int main(){for(sf::RenderWindow t(sf::VideoMode(128,128),"");t.isOpen();){t.clear();sf::RectangleShape r({128.f,128.f});r.setFillColor(sf::Color::Red);t.draw(r);r.setFillColor(sf::Color::White);r.setPosition({24.f,52.f});r.setSize({80.f,24.f});t.draw(r);r.rotate(90);r.setPosition({76.f,24.f });t.draw(r);t.display();for(sf::Event e;t.pollEvent(e);)if(e.type == 0)t.close();}}
e.type == 0
=>e.type==0
, tal vez incluso!e.type
(no recuerdo la precedencia).24.f }
=>24.f}
using namespace sf;
posible?Braindraw, 227 bytes (no competidor) (actualizado para que funcione)
Versión sin golf (241 bytes)
Versión ligeramente golfizada (227 bytes)
Braindraw es un lenguaje de programación de mi propio diseño. A partir de las 3:08 pm de hoy, tengo un intérprete en funcionamiento y he comprobado que el programa se ejecuta correctamente. Sin embargo, el intérprete no existía antes de que comenzara esta competencia, por lo que no estoy compitiendo.
Braindraw es lo mismo que Brainf ***, excepto que opera en tres matrices bidimensionales, en lugar de una matriz unidimensional. Estas matrices se denominan r, g y b, y actúan como los canales de color rojo, verde y azul. El operador r mueve el puntero al canal rojo, etc. etc. Arriba es ^, abajo es v.
fuente
TI-BASIC (TI-84 Plus C (S) E solamente), 58 bytes
fuente
Mathematica, 83 bytes
el siguiente es solo de @ ASCII (¡pensé que era una broma pero funciona!)
Mathematica, 23 bytes
-10 bytes de @Jonathan Frech
fuente
CountryData["Switzerland","Flag"]
pero puede que no tenga las proporciones correctas"Switzerland"~CountryData~"Flag"
te ahorra un poco más"CH"~CountryData~"Flag"
solo toma 23 bytes.HTML + CSS, 15 + 117 bytes = 132 bytes
Usando una envoltura flexbox con un
inset
box-shadow
.HTML + CSS, 18 +
139137122 bytes = 140 bytesRespuesta anterior usando
border
y un contenedor flexbox intermedio con negativomargin
.fuente
GraphicsMagick (?), 96 bytes
No estoy seguro de cómo jugar golf con GM (¿debería considerarse esto como un idioma?). Tampoco estoy seguro de cómo contar bytes aquí ...
Con GM instalado, escriba el código dado en Windows cmd, obtendrá una imagen con nombre
1.bmp
. Es posible que desee cambiar la comilla doble a comilla simple si está usando bash (debería funcionar, pero no lo había probado).Gracias a Digital Trauma. use solo un
-draw
guardado de 8 bytesfuente
-draw
cadena:convert -size 32x32 xc:red -fill white -draw "rectangle 13,6 18,25 rectangle 6,13 25,18" i.png
JavaScript + HTML, 99 + 13 = 112 bytes
Guardado 2 bytes gracias a user2428118
Guardado 2 bytes gracias a Matheus Avellar
JSFiddle
JavaScript puro,
194129 bytesJSFiddle
fuente
<canvas>
puede incluir el HTML directamente en su respuesta. Ver codegolf.stackexchange.com/a/136972/47097JavaScript (ES6) en HTML4 (?),
178176 bytes¡Si! No necesitamos
<canvas>
ni<svg>
ni siquiera<img>
!Gracias a Justin Mariner, ahorre 2 bytes.
fuente
Löve2D ,
139138 BytesGuardado un byte gracias a ThePirateBay
Sin golf
fuente
Python 3 , 190 bytes
Guarde la salida como
image.xpm
y ábrala con su editor de texto favorito.Pruébalo en línea!
Salida:
fuente
Perl 5 , 184 bytes
Código de 176 bytes + 8 para
-Mutf8 -p
.No estoy completamente seguro de que esto sea tan necesario, se basa en la entrada vacía que se proporciona según esta meta publicación , que no funciona en TIO, por lo que proporciona una nueva línea (que no se usa). La salida es a la terminal y se ve así:
Las proporciones deben ser a escala basadas en un espacio de caracteres que son dos 'píxeles' verticales.
Pruébalo en línea!
Puede obtener una vista previa de la salida copiando desde TIO y pegando aquí (esto muestra los caracteres de control cuando se cierne sobre el elemento) .
fuente
GFA BASIC (Atari ST), 62 bytes
Una lista editada manualmente en formato .LST. Todas las líneas terminan con
CR
, incluida la última.Ampliado y comentado:
Salida
La salida es 32x32.
NB: De hecho, está usando el color 'blanco', aunque tiene un aspecto gris en el emulador (y también en el real, a menos que aumente el brillo bastante).
fuente
R,
171140 bytes.(un poco) no golfista:
Gracias a @gregor por guardar algunos bytes
¡Ejecutarlo!
fuente
e=2
lugar deeach=2
, ent
lugar detype
,c
paracol
,b
paraborder
. Y0*1:4
es más corto quec(0,0,0,0)
.plot
:plot(0,0,'n',l,l,xaxs="i",yaxs="i")
(la asignación enm="i"
realidad le cuesta un byte). Con todo eso se reduce a 141 bytes.l
yxlim
/ylim
no son necesarios, soloplot(0:32,0:32,...)
. También adapté su enfoque y lo reduje a 117 aquí, usando enrect
lugar depolygon
.Octava,
105 bytes73 bytesNota: se agregaron avances de línea para mayor claridad, no incluidos en el recuento de bytes
EDITAR: ¡gracias a flawr por guardar bastantes bytes!
Aquí está el resultado en octave-online.net, gracias a sanchises
fuente
x(32,32,3)=0; x(:,:,1)=1; x(7:26,14:19,:)=1; x(14:19,7:26,:)=1; imshow(x*255)
GIF, 97 bytes
Barato y pesado en bytes, pero vale la pena.
EDITAR: Algunos caracteres no están en el código de arriba, aquí hay un pastebin para el hexdump del GIF.
EDITAR: comprimido a 97 bytes con la herramienta en línea.
fuente
HTML + JavaScript (ES6), 13 + 112 = 125 bytes
HTML + JavaScript (ES6), 13 + 114 = 127 bytes
fuente
clearRect
, espero que esté de acuerdo con eso.C #
265/266209 bytesEscribí caracteres de "espacio" en la consola mientras cambiaba el Color de fondo. Pero si cree que es demasiado alto y cuenta un solo carácter como 8 x 16 píxeles, simplemente dobla los valores cerca de "j" de esta manera (+ 1 byte y +
c.ReadKey();
para que se detenga):56 bytes guardados gracias a TheLethalCoder
fuente
namespace System{using static Console;class P{static void Main(){for(int i=0,j;i<32;i++,WriteLine())for(j=0;j<32;Write(" "))BackgroundColor=(ConsoleColor)((6<i&i<26&j>13&j<19)|(6<j&j++<26&i>13&i<19)?15:12);}}}
TikZ,
145143 bytesAquí está "sin golf"
Aquí está ungolfed un poco más
Esto hace que 3 rectángulos sean uno rojo grande y dos blancos más pequeños para el plus.
Así es como se ve. Realmente no se ve diferente a los demás.
fuente
documentclass
en github hace unas semanas. y no parece haber ningún requisito de fondo de ventana. Con eso\documentclass{g}\input tikz
debería funcionar para ahorrar 5B. Probablemente pueda ahorrar más trabajando en TeX simple , incluso con TikZR, 109 bytes
Se usa
frame
para evitar preestablecer un gráfico, pero la región de trazado predeterminada está en el intervalo [0,1] en lugar de [0,32]. También utiliza el hecho de querect
está vectorizado. El tamaño predeterminado de la ventana de trazado es de 7 pulgadas x 7 pulgadas. Produce lo siguiente:R, 125 bytes
El valor predeterminado para
png
es un cuadrado de 480x480 píxeles. La salida es el siguiente archivo png:fuente
R, 112 bytes
Sin embargo, para garantizar la relación de aspecto, necesitamos 5 bytes más para un total de 117:
Con mucha inspiración de la respuesta de Alex Axthelm , y gracias a Rift por guardar algunos bytes más.
fuente
bg="red"
abg=2
cuál es el mismo en la paleta predeterminadaPostdata,
301 286187 bytes¡Gracias al editor anónimo que sugirió una reducción de 99 bytes!
fuente
Rojo , 79 bytes
Código:
Resultado:
Explicación:
fuente
Mapa de bits, 160 bytes
Aquí hay un mapa de bits con profundidad de color de 1 bit, que utiliza una definición de color de 24 bits. Los últimos seis bytes de la segunda línea son la paleta y, a continuación, la matriz de píxeles. Cada cuatro bytes contiene una fila completa de píxeles.
Intenté truncar los ceros finales, pero los visores de imágenes requieren que haya suficientes píxeles definidos para todo el lienzo.
fuente
Python 2,
929189 bytesSalida como ppm binario, uso:
El aumento de la profundidad de color me permitió utilizar el espacio para obtener el máximo valor.
fuente
Tcl / Tk, 94
Si se ejecuta en el intérprete de comandos interactivo, se puede abreviar
canvas
acan
ygrid
agri
Tcl / Tk, 98
Si se ejecuta en el shell interactivo, se puede abreviar
canvas
acan
Tcl / Tk, 101
fuente