Dibuja la bandera nacional de Islandia

107

La UEFA Euro 2016 de este año ha terminado y además de un par de titulares negativos también ha habido una sorpresa muy positiva: el equipo nacional de fútbol de Islandia . Dibujemos su bandera nacional.

Entrada

Bueno, obviamente este desafío no tiene aportes.

Salida

  • Dibuje la bandera de Islandia en cualquier formato visual aplicable de al menos 100 x 72 píxeles o 25 x 18 caracteres .
  • Guarde el resultado en un archivo o preséntelo al instante: los formatos de ejemplo son: imágenes como png, jpg, etc., gráficos vectoriales, dibujar en lienzo HTML o incluso usar caracteres que no sean espacios en blanco para la visualización.
  • Utilizar estos colores : azul : #0048e0, blanco : #ffffffy rojo : #d72828.
  • Si su idioma no admite valores de color específicos, use los valores estándar para rojo , azul y blanco de los códigos de color ANSI .
  • Dibuje la bandera con las proporciones correctas, como se muestra en la figura a continuación:

Repetitivo

  • Puedes escribir un programa o una función. Si es una función anónima, incluya un ejemplo de cómo invocarla.
  • Este es el por lo que la respuesta más corta en bytes gana.
  • Las lagunas estándar no están permitidas.

Tabla de clasificación

Si no puede encontrar su respuesta, el formato de su lenguaje y conteo de bytes como se explica en la "tabla de posiciones de Información de la Sección " .


Este desafío está inspirado en Dibujar la bandera nacional de francia .

insertusernamehere
fuente
20
Mucho más desafiante sería la bandera de mi país, que también hizo mucho mejor de lo esperado en los Euros este año: Gales. :-)
Gareth
24
@Gareth, espero con ansias una especificación impermeable del dragón. ;)
Martin Ender
44
Parece que el azul en la imagen de arriba es más oscuro que el real#0048e0
Luis Mendo
10
@MartinEnder ¿Tallarlo en una tableta de piedra cuenta? Eso es a prueba de agua.
user253751
55
@MartinEnder Mathematica tendrá uno.
gcampbell

Respuestas:

259

Python 3, 190 172 171 169 167 160 159 147 143 bytes

Usando PIL versión 1.1.7 que tiene un método de desuso en desuso pero no eliminado.

from PIL.ImageDraw import*
i=Image.new('RGB',(25,18),'#d72828')
Draw(i).rectangle((1,1,23,16),'#0048e0',~0)
i.offset(9).resize((100,72)).show()

Crea una imagen de 25 * 18 píxeles llena de rojo y luego dibuja un rectángulo de 23 * 16 píxeles lleno de azul con un contorno blanco de un píxel. Luego compensa la imagen en (9,9) que se ajusta en los bordes, cambia su tamaño a 100 * 72 y luego la muestra en una ventana.

Marcar antes de compensar:

ingrese la descripción de la imagen aquí (redimensionado a 100 * 72)

Salida:

ingrese la descripción de la imagen aquí

Animado:

ingrese la descripción de la imagen aquí

Edit1: Golfed 18 bytes eliminando el recorte creando inicialmente una imagen 25 * 18.

Edit2: Golfed 1 byte usando en #ffflugar de white.

Edit3: Golfed 2 bytes aliasing importaciones.

Edit4: Golfed 2 bytes eliminando el segundo argumento del método offset.

Edit5: Golfed 7 bytes mostrando la imagen en lugar de guardar. (necesita imagemagick instalado en Unix)

Edit6: Golfed 1 byte reescribiendo las importaciones.

Edit7: Golfed 12 bytes reescribiendo las importaciones nuevamente. (gracias por @Dennis)

Edit8: Animación añadida.

Edit9: animación actualizada ya que faltaba el último fotograma.

Edit10: Golfed 4 bytes gracias a Albert Renshaw!

Gábor Fekete
fuente
42
Muy buena respuesta.
insertusernamehere
17
Esto es genial! (Vikingo) Sombrero para ti.
Ioannes
25
Wow, es raro que vote sobre preguntas de tipo código de golf en SO, pero es aún más raro que me una a una comunidad completamente nueva solo para hacerlo. Este truco de compensación recuerda a lo que solíamos hacer antes de que ustedes, pequeños whippersnappers, consiguieran sus oodlebytes de memoria para trabajar. Excelente trabajo.
55
genio, de verdad! 💡
InuYaksa
3
Si lo hace from PIL.ImageDraw import*, se Iconvierte Imagey se D.Drawvuelve Draw, ahorrando 11 bytes.
Dennis
117

Código de máquina x86 en modo real para DOS COM, 69 65 63 62 bytes

Bandera de Islandia producida

El código está destinado a ejecutarse como un ejecutable COM de DOS.

Gracias especiales

  • meden , guardado cuatro bytes.
  • meden , guardó dos bytes y eliminó el parpadeo.

Código de máquina (en bytes hexadecimales)

68 00 A0 07 B8 13 00 CD      10 BE 23 01 AD 91 AD 91 
AC E3 FE 60 30 ED F3 AA      61 81 C7 40 01 FE CD 75 
F2 EB E9 FA B4 00 00 09      28 B4 46 00 0F FA 28 80 
57 0F 14 B4 0C 50 00 FA      14 0C 00 64 00 00

Fuente de montaje

La fuente es para NASM.

ORG 100h

push 0a000h
pop es

mov ax, 13h
int 10h

mov si, data


_draw:
 lodsw
 xchg ax, cx

 lodsw
 xchg ax, di

 lodsb

_cycle:
 jcxz _cycle

 ;al = color
 ;cl = col
 ;ch = row

rect:
 pusha
 xor ch, ch
 rep stosb
 popa
 add di, 320
 dec ch
 jnz SHORT rect

jmp SHORT _draw


data: 

        db 250d
        db 180d
        dw 0000h
        db 09h


        db 40d
        db 180d
        dw 0070d
        db 0fh


        db 250d
        db 40d
        dw 22400d
        db 0fh

        db 20d
        db 180d
        dw 80d
        db 0ch


        db 250
        db 20
        dw 25600d 
        db 0ch


        dw 0000h
Margaret Bloom
fuente
13
¡Esta es una primera respuesta realmente genial! ¡Bienvenidos!
AdmBorkBork
55
Puede guardar 2 bytes reemplazando 'mov' con 'xchg' a las 10h y 13h y otros 2 bytes reemplazando 'test cx, cx / jz' con 'jcxz' a las 16h
meden
3
Algunos pensamientos más. Dado que el programa se ejecuta en el bucle infinito, se puede evitar el parpadeo sólo por hacer el bucle más corto: _loop: jcxz _loop. También puede cortar 2 bytes desde el final del fragmento de datos si cambia el orden de carga de cxydi
meden
Gracias de nuevo @meden. El parpadeo era completamente innecesario en efecto :) También eliminé el mov bx, 320y moví el 320 a add di, 320(anteriormente add di, bx).
Margaret Bloom
Excelente. Ahora tiene una ventaja firme sobre todas las respuestas de código de máquina en este desafío. Solo por el bien de la corrección: es mejor moverse jcxz _cycleinmediatamente después xchg ax,cxpara que no cargue bytes más allá del final de los datos. Y hay algunos comentarios confusos en la fuente: ;dx = row. dxno se usa en ningún lugar del código.
meden
55

C, 194 191 183 Bytes

#define C "\x1b["
#define A "@@@@@@"
y;f(){for(;y++<14;)printf(y>5&&y<10?y>6&&y<9?C"31m"A A A A"@\n":C"0m"A"@@"C"31m@@"C"0m"A A"@@@\n":C"34m"A"@"C"0m@"C"31m@@"C"0m@"C"34m"A A"@@\n");}

-3 agregando uno @en el #define A
-8 agregando [en#define C

Uso

main(){f();}

Salida

imagen

válido basándose en este comentario del OP

Salida de doble tamaño, 204 bytes

#define C "\x1b["
#define B "████"
#define A B B B
y;f(){for(;y++<28;)printf(y>10&&y<19?y>12&&y<17?C"31m"A A A A"██\n":C"0m"A B C"31m"B C"0m"A A B"██\n":C"34m"A"██"C"0m██"C"31m"B C"0m██"C"34m"A A B"\n");}

imagen2

Giacomo Garabello
fuente
22
el 5º voto desencadenó una red de representantes de +810 en toda la red ... ¡Gracias! (Sí, es el primer sitio donde
alcanzo
1
¿No tiene que ser el resultado "al menos 100 x 72 unidades, donde una unidad es un píxel o un personaje"? Esto no cumple con este requisito, pero sospecho que el OP cometió un error al formular esa definición.
Kritzefitz
44
@Kritzefitz Bueno, un personaje ocupa muchos píxeles, por lo que puede ser un píxel en lugar de un personaje. Encontrado un hoyo.
Erik the Outgolfer
@GiacomoGarabello ¿Cuál es el primer sitio en la foto en donde obtuviste +150? No reconozco el ícono.
@LegoStormtroopr ¡Es PPCG! ¡Echa un vistazo a este proyecto GitHub!
Giacomo Garabello
31

Excel VBA, 254 228 153 bytes

Realmente no pude encontrar una manera de establecer el tamaño de columna / fila en píxeles (por lo tanto, hacerlos cuadrados) debido a la forma en que Excel lo maneja, así que primero haz que sean bonitos y cuadrados.

Edición 1: RGB reemplazado con valores devueltos para colores, -26 bytes

Edición 2: Intenté agregar tantas sugerencias como pude, -75 bytes. No pude usarlo &48e0como color y no estoy seguro de por qué. Gracias a todos

Sub e()
c "A1:CV72", rgbBlue
c "AC1:AR72", -1
c "A29:CV44", -1
c "AG1:AN72", 255
c "A33:CV40", 255
End Sub

Sub c(d, f)
Range(d).Interior.Color = f
End Sub

Imagen: Bandera de islandia

tjb1
fuente
¿Cómo hiciste cuadrar las células? ¿Lo hiciste manualmente o con algún otro script no incluido? Me gustaría verlo, incluso si no es parte de su programa calificado.
mbomb007
Lo hice manualmente, el código para cambiar el ancho de la celda es bastante fácil donde podría haberlo agregado, pero los tamaños no son consistentes entre las resoluciones de fila / columna o monitor a menos que establezca el tamaño en función de los píxeles que no se pueden hacer desde Lo que pude encontrar. Por lo que leí, tienes que encontrar la resolución y hacer algunos cálculos matemáticos para convertir los píxeles al tamaño que acepta la función.
tjb1
1
Además, el código para convertirlo a píxeles parece que requiere un código duro, ya sea una parte de la resolución o PPI (no entiendo realmente la fórmula), por lo que parece que tampoco funcionaría en todos los dispositivos.
tjb1
2
Y, solo para completar (que ver con la configuración de celdas cuadradas en lugar de la solución en sí), si cambia a la vista de diseño de página, puede establecer el alto y ancho de celda a valores específicos como 0.2cm. Esto se mantendrá una vez que cambie, y no es necesario que intente resolver las extrañas relaciones de aspecto de Excel :-) Por cierto, si desea algunos trucos más geniales de Excel, busque el video de Joel Spolsky "Usted apesta en Excel".
3
Creo que se puede eliminar el espacio en blanco adicional, aunque se agregue automáticamente más tarde.
Erik the Outgolfer
29

MATL , 57 56 52 49 48 bytes

7:g2IvtPvt!9Mh2$X>2YG[0E28]8*255/7B[43DD]51/v2ZG

Esto produce la siguiente figura (probada con el compilador que se ejecuta en Matlab y en Octave).

ingrese la descripción de la imagen aquí

EDITAR: ¡Puedes probar experimentalmente en MATL Online! (es posible que deba volver a cargar la página si no funciona inicialmente).

Cómo funciona

7:g         % Range from 1 to 7 converted to logical: push array [1 1 1 1 1 1 1]
2           % Push 2
I           % Push 3
v           % Concatenate vertically into a 9×1 array
tPv         % Duplicate, flip vertically, concatenate. Gives a 18×1 array
t!          % Duplicate, transpose: 1×18 array
9M          % Push [1 1 1 1 1 1 1] again
h           % Concatenate horizontally: gives 1×25 array
2$X>        % Maximum of the two arrays, with broadcast. Gives a 18×25 array
            % with 1 for blue, 2 for white, 3 for red
2YG         % Show image with default colormap
[0E28]8*    % Push array [0 72 224] (blue)
255/        % Divide each entry by 255. Colors are normalized between 0 and 1
7B          % 7 converted into binary: push array [1 1 1] (white, normalized)
[43DD]51/   % Push array [215/255 40/255 40/255] (red, normalized)
v           % Concatenate vertically. Gives a 3×3 array
2ZG         % Use as colormap
Luis Mendo
fuente
26

CSS, 285 284 264 bytes

*,:before,:after{background:#fff;width:100;height:72}body{background:#0048e0;margin:0}:before,:after{content:"";position:fixed}:after{background:#d72828}html:before{top:28;height:16}body:before{left:28;width:16}html:after{top:32;height:8}body:after{left:32;width:8

Guardado 1 byte gracias a @insertusernamehere.

Ahorró 20 bytes gracias a @ user2428118, al eliminar todos los pxs. Tenga en cuenta que esto requiere que la página se represente en modo peculiar, por lo que no funciona en fragmentos de pila.

Podría copiar el enfoque de Python de envolver una imagen en un desplazamiento, pero no sería interesante.

Sin golf:

*, *::before, *::after {
  background: #fff;
  width: 100px;
  height: 72px;
}

body {
  background: #0048e0;
  margin: 0;
}

*::before, *::after {
  content: "";
  position: fixed;
}

*::after { background: #d72828 }

html::before { top: 28px; height: 16px }
body::before { left: 28px; width: 16px }
html::after { top: 32px; height: 8px }
body::after { left: 32px; width: 8px }

Esto usa los pseudoelementos (elementos que no están escritos en HTML) ::beforey ::afterpara crear las líneas en la bandera. La razón por la que funciona sin HTML es que en HTML5 los elementos <html>y <body>son opcionales, por lo que los navegadores los crean automáticamente si no están presentes.

Más diversión:

gcampbell
fuente
2
Todavía puede guardar 1 byte reemplazando whitecon #fff.
insertusernamehere
@insertusernamehere Sí, gracias.
gcampbell
1
Si aplica el CSS en modo peculiar (página sin doctype) puede reducirlo a 264 bytes omitiendo en pxtodas partes.
user2428118
@ user2428118 ¡Aún más útil teniendo en cuenta que no hay HTML, por lo tanto no <!doctype html>!
wizzwizz4
@ user2428118 Por alguna razón, no funciona para mí en Safari móvil. Echaré un vistazo la próxima vez que esté frente a una computadora.
gcampbell
26

Bash + Imagemagick 7, 94 90 86 85 bytes

magick -size 84x56 xc:#0048e0 ${s=-splice 8x8}+28+28 -background \#d72828 $s+32+32 x:

Guardado 8 bytes, gracias a @manatwork, y 1 byte, gracias a @ GlennRanders-Pehrson

bodqhrohro
fuente
55
Si especifica en x:lugar del nombre del archivo de salida, convertmostrará el resultado en una ventana, que también es aceptable. Y es suficiente con sólo escapar de la fuerte, sin necesidad de citar: \#d72828.
manatwork
2
Por lo general, etiquetamos respuestas como Bash + Imagemagick . En bashel lado usted puede ahorrar otros 4 personajes: convert -size 84x56 xc:#0048e0 ${s=-splice 8x8}+28+28 -background \#d72828 $s+32+32 x:.
manatwork
Solo una pregunta estúpida: ¿puedes hacer ${s=-splice 8x8}+56?
Erik the Outgolfer
@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ +56es tratado como +56+0, no +28+28.
bodqhrohro
2
Puede guardar otro byte utilizando una versión reciente de ImageMagick; entonces el comando puede ser "magia" en lugar de "convertir".
Glenn Randers-Pehrson
20

BASIC del ZX Spectrum, 210 141 92 bytes

1 LET n=-VAL "8.5": FOR y=n TO -n: FOR x=n TO VAL "16": LET p=VAL "271"(PI-(ABS x<SQR PI OR ABS y>SQR PI)-NOT INT ABS x*INT ABS y): PRINT PAPER p; BRIGHT p>PI;" ";: NEXT x: PRINT : NEXT y

ingrese la descripción de la imagen aquí

Tamaño determinado como el tamaño del programa BASIC en cinta vía SAVE. Gran parte del crédito de golf para algunos miembros del grupo ZX Spectrum en Facebook , en particular @impomatic y Johan Koelman.

Philip Kendall
fuente
Al ver aquellos PAPERy BRIGHTtrae tantos buenos recuerdos :-)
Luis Mendo
¿Hay alguna información sobre cuánta memoria toma un programa ZX Spectrum BASIC? Pensé que era un lenguaje "tokenizado", es decir, esperaba FOR, NOTetc. , tomar solo 1 o tal vez 2 bytes cada uno
Luis Mendo
1
@LuisMendo Sí, está tokenizado, FORes precisamente un byte. Sin embargo, los números son "anti-tokenizados" en el sentido de que se almacenan como texto y formas binarias y ocupan 5 bytes más de lo que cabría esperar, por lo tanto, en NOT PIlugar de cero y similares.
Philip Kendall
132 bytes quitando el AT y ajustando la prueba de límite twitter.com/john_metcalf/status/752760203007791105
impomático
1
122 bytes con algunas optimizaciones adicionales twitter.com/john_metcalf/status/752783690179211264
impomático
15

Conjunto ZX Spectrum Z80, 65 bytes

    ld hl,22528
    ld b,7
    ld de,120*256+8 ; white, blue
    ld a,16         ; red

; create the first row

blueleft:
    ld (hl),e
    inc hl
    djnz blueleft

    ld (hl),d
    inc hl
    ld (hl),a
    inc hl
    ld (hl),a
    inc hl
    ld (hl),d
    inc hl

    ld b,14
blueright:
    ld (hl),e
    inc hl
    djnz blueright

; copy the first row to the next 17 rows

    ld l,b
    ld de,22528+32
    ld bc,17*32
    ldir

; add the horizontal stripe

    ld hl,22528+7*32
    dec d
    ld e,b
    ld c,2
midrep:
    ld b,25
midstripe:
    cp (hl)
    jr z,red
    ld (hl),120
red:
    ld (de),a
    inc hl
    inc de
    djnz midstripe

    ld hl,22528+10*32
    ld e,9*32
    dec c
    jr nz,midrep
    ret

Bandera islandesa

impomático
fuente
14

Minecraft 1.10.2, 734 caracteres

Puede que sean 734 caracteres, ¡pero hasta ahora es la única presentación hecha de lana real!

summon FallingSand ~ ~1 ~ {Block:log,Time:1,Passengers:[{id:FallingSand,Block:redstone_block,Time:1,Passengers:[{id:FallingSand,Block:activator_rail,Time:1,Passengers:[{id:MinecartCommandBlock,Command:"fill 0 ~ 0 100 ~ 72 wool 11"},{id:MinecartCommandBlock,Command:"fill 28 ~ 0 44 ~ 72 wool"},{id:MinecartCommandBlock,Command:"fill 0 ~ 28 100 ~ 44 wool"},{id:MinecartCommandBlock,Command:"fill 32 ~ 0 40 ~ 72 wool 14"},{id:MinecartCommandBlock,Command:"fill 0 ~ 32 100 ~ 40 wool 14"},{id:MinecartCommandBlock,Command:setblock ~ ~ ~1 command_block 0 replace {Command:fill ~ ~-3 ~-1 ~ ~ ~ air}},{id:MinecartCommandBlock,Command:setblock ~ ~-1 ~1 redstone_block},{id:MinecartCommandBlock,Command:kill @e[type=MinecartCommandBlock]}]}]}]}

Vaya a aproximadamente -5x -5z, péguelo en un bloque de comando Impulse, configúrelo en "Siempre activo" y presione Listo.

La bandera abarca de 0, 0 a 100, 72; y está a 3 bloques por encima del bloque de comando como se coloca Se proyecta una sombra bastante grande , y los monstruos aparecen debajo de ella. Sin embargo, si esto es exacto para el país de Islandia, nadie lo sabe.

Advertencia justa: matará a todos los MinecartCommandBlocks del mundo para salvar a cuatro personajes. No ejecutes esto en un mundo al que estés demasiado apegado.

Bandera

Se utiliza combinador de comandos de MrGarretto y ajustado la salida un poco (808 -> 734)

quat
fuente
1
"Si esto es exacto para el país de Islandia ..."
Jordan
2
¿No puedes usar kill @e sin el argumento del selector de destino?
Matará
11

Logotipo, 216 188 bytes

Usando la implementación de Calormen.com . Para ustedes, los puristas, la implementación utiliza un poco de suavizado que distorsiona un poco los bordes. Sin embargo, desperdicié 3 bytes escondiendo la tortuga, así que eso debería compensarlo.

Esto podría reducirse enormemente si la implementación de su logotipo le permite establecer el tamaño de la ventana. Entonces podrías wrapy hacer que la tortuga se extienda para hacer la cruz en cuatro trazos, y evita tener que recortarla con un borde.

captura de pantalla de bandera generada

TO X :C :S
setpc :C
setpensize :S
home
pd
setx 100
setx 36
bk 36
fd 72
pu
END
setpc "#48e0
fill
X 7 16
X "#d72828 8
fd 4
pe
pd
setx -4
bk 80
setx 104
fd 80
setx 0
ht
GuitarPicker
fuente
¡No sabía que había una versión en inglés de Logo!
Vincent
1
Absolutamente. Creo que lo vi por primera vez hace más de 30 años en un Apple IIe. También lo tuve en mi computadora TRS-80 Color. Era mi primer intento de usar ángulos en geometría, años antes de que lo aprendiera oficialmente en la escuela.
GuitarPicker
¿Por qué el borde blanco a su alrededor?
Solomon Ucko
1
Dibujé las líneas con un bolígrafo grande, que deja bordes redondeados en las puntas de la cruz, así que tuve que barrerlo con un borrador grande para cuadrarlas. Estaba escribiendo otra versión de esto que usaba un método completamente diferente en Logo y resultó ser más pequeño. También estaba trabajando en una tercera versión que imprime una gran cruz latina Unicode y la pinta, pero las proporciones no eran correctas y el tamaño parecía que excedería esta.
GuitarPicker
10

Java 8, 449 447 bytes:

import java.awt.*;import javax.swing.*;class A extends JPanel{public void paintComponent(Graphics G){super.paintComponent(G);G.setColor(new Color(0,72,224));G.fillRect(0,0,175,126);G.setColor(Color.WHITE);G.fillRect(49,0,28,126);G.fillRect(0,49,175,28);G.setColor(new Color(215,40,40));G.fillRect(56,0,14,126);G.fillRect(0,56,175,14);}public static void main(String[]a){JFrame J=new JFrame();J.add(new A());J.setSize(175,147);J.setVisible(true);}}

Una respuesta muy tardía, y también la más larga aquí, aparentemente. Utiliza la java.awt.Graphicsclase para crear y abrir una ventana con la bandera, creada por 5 rectángulos totales que consisten en 1 para los bloques azules, 2 para las rayas blancas y 2 para las rayas rojas. Utiliza 7 píxeles: relación de 1 unidad. En otras palabras, para cada unidad, se utilizan 7 píxeles. Aquí hay una imagen de la salida en un Macintosh con OS X 10.11:

Salida de ejemplo

Ahora para encontrar una manera de jugar golf un poco más ...

R. Kap
fuente
Intenta anular en paintlugar de paintComponent. Considere usar una clase anónima para JPanel. Considere simplemente usar una BufferedImage y enviarla a un archivo.
Justin
@Justin En realidad, ya estaba usando Bluecomo 1 gran rectángulo para el fondo. Me confundí entre esta y otra versión que hice en Python. De todos modos, gracias por los otros consejos! :)
R. Kap
Algunas sugerencias más: no utilice un JPanel, simplemente anule el JFrame. Si usted hace esto y simplemente anular paint, no es necesario Swing, simplemente AWT, por lo que cambia la JFramea Framey eliminar la importación. No llame super.paint. Reorganizar el método principal; mover el setSizeen el paintmétodo de nuestra Frame, eliminar la variable J, y añadir .setVisible(true)al final de la clase anónima. Finalmente, cambie .setVisible(true)a ser show(), sí, es un método obsoleto, pero es más corto. Use un interfacepara eliminar el publicdel método principal.
Justin
Resultado final en 338 caracteres (también tuve que cambiar la altura ya que es un cuadro):import java.awt.*;interface A{static void main(String[]a){new Frame(){public void paint(Graphics G){setSize(175,119);G.setColor(new Color(0,72,224));G.fillRect(0,0,175,126);G.setColor(Color.WHITE);G.fillRect(49,0,28,126);G.fillRect(0,49,175,28);G.setColor(new Color(215,40,40));G.fillRect(56,0,14,126);G.fillRect(0,56,175,14);}}.show();}}
Justin
1
Aún mejor: no pintes el primer rectángulo, solo llama setBackground(color)(también el tamaño seguía siendo incorrecto). Ahora a las 317:import java.awt.*;interface A{static void main(String[]a){new Frame(){public void paint(Graphics G){setSize(175,126);setBackground(new Color(0,72,224));G.setColor(Color.WHITE);G.fillRect(49,0,28,126);G.fillRect(0,49,175,28);G.setColor(new Color(215,40,40));G.fillRect(56,0,14,126);G.fillRect(0,56,175,14);}}.show();}}
Justin
10

R, 197 195 187 bytes

w="white";r="#d72828";png(w=100,h=72);par(mar=rep(0,4),bg="#0048e0",xaxs="i",yaxs="i");frame();rect(c(0,7,0,8)/25,c(7,0,8,0)/18,c(1,.44,1,.4),c(11/18,1,5/9,1),c=c(w,w,r,r),b=NA);dev.off()

Sangrado, con nuevas líneas y explicaciones:

w="white"
r="#d72828"
png(w=100,h=72) #Creates in working directory a png called Rplot001.png 
                #with a width and a height of 120 and 72 pixels respectively.
par(mar=rep(0,4), #No margin around the plot
    bg="#0048e0", #Blue background
    xaxs="i",yaxs="i") #Axes fits range exactly
frame() #Creates an empty plot which range is xlim=c(0,1) & ylim=c(0,1)
rect(c(0,7,0,8)/25, #Because rect is vectorized
     c(7,0,8,0)/18,
     c(1,.44,1,.4), #i. e. c(25,11,25,10)/25
     c(11/18,1,5/9,1), #i. e. c(11,18,10,18)/18
     c=c(w,w,r,r), # c= is the same as col=, thanks to argument name completion
     b=NA)#No borders
dev.off()

Bandera de la isla

Editar : resulta que frame(), al contrario plot()o plot.new()por defecto, no agrega un borde a la trama, lo que significa que bty="n"aquí no era necesario.

plannapus
fuente
9

Atari ejecutable de 8 bits, 123 bytes

Otra entrada "solo por diversión", este programa está diseñado para ejecutarse en una computadora o emulador Atari de 8 bits. Por ejemplo, para cargar el programa en Atari800, simplemente ejecute:

atari800 iceland.xex

Código de máquina (en bytes hexadecimales)

ff ff 00 06 74 06 a9 1b 8d 30 02 a9 06 8d 31 02
a9 44 8d c4 02 a9 0f 8d c5 02 a9 84 8d c6 02 d0
fe 70 70 70 48 57 06 48 57 06 48 57 06 48 57 06
48 57 06 48 57 06 48 57 06 48 61 06 48 6b 06 48
6b 06 48 61 06 48 57 06 48 57 06 48 57 06 48 57
06 48 57 06 48 57 06 48 57 06 41 1b 06 ff fe 5b
ff ff ff c0 00 00 00 aa aa 5a aa aa aa 80 00 00
00 55 55 55 55 55 55 40 00 00 00

Código fuente del ensamblador (se puede compilar con MADS ):

        org $0600
        lda <dlist
        sta $0230
        lda >dlist
        sta $0231
        lda #$44
        sta $02c4
        lda #$0f
        sta $02c5
        lda #$84
        sta $02c6
loop    bne loop
dlist   dta $70, $70, $70
        dta $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1)
        dta $48, a(line2)
        dta $48, a(line3), $48, a(line3)
        dta $48, a(line2)
        dta $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1)
        dta $41, a(dlist)
line1   dta $ff, $fe, $5b, $ff, $ff, $ff, $c0, $00, $00, $00
line2   dta $aa, $aa, $5a, $aa, $aa, $aa, $80, $00, $00, $00
line3   dta $55, $55, $55, $55, $55, $55, $40, $00, $00, $00

Cómo funciona:

El programa utiliza una lista de visualización personalizada que se basa en el modo ANTIC 8 (40 píxeles por línea, 2 bpp). Las líneas repetidas se cargan desde la misma ubicación de memoria. Después de configurar la pantalla, el programa entra en un bucle infinito.

Captura de pantalla:

iceland.xex ejecutándose en Atari800

Locoluis
fuente
9

FFmpeg, 339 184 bytes

ffplay -f lavfi color=d72828:100x36[r];color=white:64x32[w];color=0048e0:56x28[b];[w][b]overlay=4,split[x][y];[r][x]overlay=-32[d];[d][y]overlay=40,split[t][m];[m]vflip[n];[t][n]vstack

Intentaremos jugar golf más abajo ... más lejos.

Imagen 100x72 de la bandera de Islandia

Gyan
fuente
9

Pitón, 119 118 114 112 bytes

Nada especial, directo:

b,w,r="\0H\xe0"*28,"\xff"*12,"\xd7(("*8
A,B=28*(b+w+r+w+2*b),4*(8*w+r+15*w)
print"P6 100 72 255 "+A+B+100*r+B+A

Salida como PPM binario, uso

python golf_iceland.py > iceland.ppm
  • Edit1: empujó un byte entre print y las comillas
  • Edit2: ligeramente más corto como PPM binario
  • Edit3: imaginé que \0se puede usar en lugar de\x00

Si alguien sabe cómo usar el carácter ASCII no imprimible directamente, infórmelo.

Convertido a PNG

Karl Napf
fuente
2
¡Felicidades! Me ganaste mucho: D
Gábor Fekete
2
@ GáborFekete te ganó en bytes, sí. Pero su respuesta es mucho más inteligente con ese desplazamiento
Karl Napf
¿Por qué no tener los resultados de los escapes en lugar de los escapes en sí mismos?
Solomon Ucko
@SolomonUcko Intenté b,w,r="\0Hà"*28,"ÿ"*12,"×(("*8usar Python 3, pero no funciona.
Karl Napf
@KarlNapf, ¿cómo falló? ¿Se dibujó incorrectamente o dio un mensaje de error? También podría ser un problema de codificación.
Solomon Ucko
8

JavaScript, 267 bytes

document.write("<div style='width:250px;height:180px;background:"+[[b="bottom",44.4,d="d72828",55.6],[r="right",32,d,40],[b,38.9,e="fff",61.1],[r,28,e,44]].map(([d,a,c,o])=>`linear-gradient(to ${d+(t=",transparent ")+a}%,#${c} ${a}%,#${c} ${o}%${t+o}%)`)+",#003897'")

Neil
fuente
1
¿Seguro que la proporción 7-14 de los anchos azul izquierdo y derecho es correcta?
manatwork
1
@manatwork Vaya, por alguna razón pensé que 100/25 = 5, por lo que todo terminó un 25% demasiado ancho.
Neil
8

Java, 335 bytes

La función es

void w()throws Exception{int w=100,h=72;BufferedImage i=new BufferedImage(w,h,1);Graphics g=i.getGraphics();g.setColor(new Color(18656));g.fillRect(0,0,w,h);g.setColor(WHITE);g.fillRect(0,28,w,16);g.fillRect(28,0,16,h);g.setColor(new Color(14100520));g.fillRect(0,32,w,8);g.fillRect(32,0,8,h);ImageIO.write(i,"png",new File("f.png"));}

Y escribe la imagen deseada como f.png, con un tamaño de 100x72

(Tenga en cuenta que esto no es un competidor directo de la Respuesta de R. Kap , porque escribe un archivo y no muestra la imagen en la pantalla)

Aquí está la versión sin golf que se puede compilar y ejecutar:

import static java.awt.Color.WHITE;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

public class Iceland
{
    public static void main(String[] args) throws Exception
    {
        Iceland i = new Iceland();
        i.w();
    }

    void w() throws Exception
    {
        int B=0x0048e0,R=0xd72828,w=100,h=72;
        BufferedImage i=new BufferedImage(w,h,1);
        Graphics g=i.getGraphics();
        g.setColor(new Color(B));
        g.fillRect(0,0,w,h);
        g.setColor(WHITE);
        g.fillRect(0,28,w,16);
        g.fillRect(28,0,16,h);
        g.setColor(new Color(R));
        g.fillRect(0,32,w,8);
        g.fillRect(32,0,8,h);
        ImageIO.write(i,"png",new File("f.png"));
    }
}

Una nota al margen, con respecto a las preguntas relacionadas: Tal vez uno debería crear un desafío para pintar las banderas de

  • Indonesia
  • Polonia
  • Finlandia
  • Francia
  • Países Bajos
  • Tailandia
  • Noruega

al mismo tiempo:

ingrese la descripción de la imagen aquí

Marco13
fuente
7

SVG + Javascript, 190 165 164 bytes

No hay ningún experto allí, ¡ repetir una ruta solo para cambiar el color y el ancho de línea se ve tonto javascript ftw!

document.write(`<svg><rect width=100 height=72 fill="#0048e0"/>${a='<path d="M0 36L100 36M36 0L36 72"style="stroke-width:'}16;stroke:#fff"/>${a}8;stroke:#d72828">`)

Más legible:

document.write(`<svg><rect width=100 height=72 fill="#0048e0"/>
${a='<path d="M0 36L100 36M36 0L36 72"style="stroke-width:'}16;stroke:#fff"/>
${a}8;stroke:#d72828">`)
nicael
fuente
Puede usar en path d="m0,0h100v72H0"lugar del rectángulo para guardar dos bytes. Del mismo modo, utilícelo M0 36H100M36 0V72para los datos de la otra ruta, lo que ahorra otros cinco bytes. Y puede descartar el styleatributo a favor de declarar ambos stroke-widthy strokecomo atributos para guardar otros cinco bytes.
Joey
7

Procesando , 136 bytes

size(100,72);noStroke();background(#0048e0);fill(255);rect(28,0,16,72);rect(0,28,100,16);fill(#d72828);rect(0,32,100,8);rect(32,0,8,72);

Sin golf

//open the window
size(100,72);
//turn off borders that surround shapes by default
noStroke();
//draw blue as the background
background(#0048e0);
//set color to white
fill(255);
//draw 2 white bars
rect(28,0,16,72);
rect(0,28,100,16);
//set color to red
fill(#d72828);
//draw 2 red bars
rect(0,32,100,8);
rect(32,0,8,72);

Salida:

ingrese la descripción de la imagen aquí

Cody
fuente
1
Puede eliminar dos bytes más utilizando filly en rectlugar de sizey background. 134 bytes:noStroke();fill(#0048e0);rect(0,0,100,72);fill(255);rect(0,28,100,16);rect(28,0,16,72);fill(#d72828);rect(0,32,100,8);rect(32,0,8,72);
GuitarPicker
Además de lo que dijo GuitarPicker, fill(-1)es un byte más corto quefill(255)
Kritixi Lithos
7

Mathematica 174157 bytes

Sin construcciones:

157 bytes

r=Rectangle;c=RGBColor;Graphics@{c[{0,72,224}/255],r[{0,0},{25,18}],White,r[{7,0},{11,18}],r[{0,7},{25,11}],c[{43,8,8}/51],r[{8,0},{10,18}],r[{0,8},{25,10}]}

ingrese la descripción de la imagen aquí

o alternativamente

232 bytes

x=Join[Unitize/@Range@7,{0},{2,2},{0},Unitize/@Range@14]&/@Range@7;y=Join[ConstantArray[0,8],{2,2},ConstantArray[0,15]];z=ConstantArray[2,25];ArrayPlot[Join[x,{y},{z,z},{y},x]/.{2->RGBColor[{43,8,8}/51],1->RGBColor[{0,72,224}/255]}]

ingrese la descripción de la imagen aquí

martín
fuente
1
De nada. Lo mismo se puede aplicar a su segunda versión más larga. u=Unitize;c=ConstantArrayetc ^ _ ^
Dan Oak
1
Espera, ¿hay algo para lo que Mathematica no tenga una construcción? Estoy sorprendido.
Morgan Thrapp
@MorganThrapp Estoy seguro de que solía haber otra respuesta de Mathematica usando un incorporado.
gcampbell
3
HayCountryData["Iceland", "Flag"]
dwa
7

JavaScript (ES6), 231 240

Código dentro del fragmento a continuación. Ejecútalo para probar.

d=(w,h,c)=>`<div style=float:left;width:${w}em;height:${h}em;background:#${['0048e0','fff','d72828'][~~c]}>`;document.write(d(25)+(a=[252,61,94,61,476]).concat(b=[261,70,485],810,b,a).map(v=>d(v>>5,v/4&7,v&3)).join(e='</div>')+e+e)

edc65
fuente
7

Ensamblaje ZX Spectrum Z80, 51 bytes

https://github.com/ralphbecket/Z80/blob/master/IcelandFlag/IcelandFlag.asm

                zeusemulate "48K", "ULA+"
ZeusEmulate_PC  equ Main
ZeusEmulate_SP  equ $FF40

                org $8000

MinWhite        equ 7
MinRed          equ MinWhite + 1
TopRed          equ MinRed + 2
TopWhite        equ TopRed + 1
Height          equ TopWhite + MinWhite - 2
Width           equ TopWhite + 2 * MinWhite - 1

White           equ %01111000
Red             equ %01010000
Blue            equ %01001000

Main            ld hl, $5800 + ((Height - 1) * 32) + (Width - 1)
                ld c, Height

YLoop           ld b, Width

XLoop           ld (hl), Red
                ld de, MinRed * $100 + TopRed
                call Test
                jr c, Next

                ld (hl), White
                ld de, MinWhite * $100 + TopWhite
                call Test
                jr c, Next

                ld (hl), Blue

Next            dec hl
                djnz XLoop
                ld de, -(32 - Width)
                add hl, de
                dec c
                jr nz, YLoop
                ret

Test            equ *
TestX           ld a, b
                cp d
                jr c, TestY
                cp e
                ret c
TestY           ld a, c
                cp d
                ccf
                ret nc
                cp e
                ret

ingrese la descripción de la imagen aquí

Ralph Becket
fuente
7

J, 86 84 83 bytes

   load'viewmat'
   (255,0 72 224,:215,2#40)viewmat _9 _9|.2(b=.[,~[,.~[,[,.])0 b 14 21$1

El enfoque es el mismo que el de @ Gábor Fekete con Python.

El argumento izquierdo colorspara viewmates una matriz de valores RGB, en nuestro caso:

255 255 255
  0  72 224
215  40  40

Y el argumento correcto es una matriz de índices de colors.
(_9 _9 |. matrix)ordena cambiar matrix9 elementos en cada dimensión.
Construcción (border ([,~[,.~[,[,.]) matrix)aterradora envuelve matrixcon número border.
Y (14 21 $ 1)hace 14 × 21 matriz de unos.

La salida se muestra en una ventana de tamaño variable separada, bastante grande por defecto. ingrese la descripción de la imagen aquí

Gracias

millas: ahorró 2 bytes al reordenar los colores, usó la función de ,que duplica los números (255) para el acuerdo de forma.

Dan Oak
fuente
1
Parece que la altura de la bandera es de 26 unidades en lugar de 25.
Gábor Fekete
@ GáborFekete hm, ¿querías decir que la altura es 19 en lugar de 18? no mencioné eso, solo noté después de tu comentario
Dan Oak
Ah, claro, escribí altura pero usé los valores de ancho ...
Gábor Fekete
Sí, de hecho. Cometí un error en los valores. la forma de la matriz inicial debe ser 14 21( 18 25 - 4 4). corrigiendo ... gracias!
Dan Oak
1
Puede guardar 2 bytes reordenando los valores rgb(255,0 72 224,:215 40 40)viewmat _9 _9|.2(b=.[,~[,.~[,[,.])0 b 14 21$1
millas
6

TI-BASIC (no competidor), 323 bytes

El código está escrito para la TI-84, 83 y sus variantes. Espero que no sea un problema que las dimensiones varíen según el dispositivo y que el código no esté coloreado.

Preparar:

:18→Xmax:¯18→Xmin
:10→Ymin:¯10→Ymin
:AxesOff

Dibujo:

:Line(¯15,9,¯8,9)
:Line(¯8,9,¯8,2)
:Line(¯8,2,¯15,2)
:Line(¯15,2,¯15,9)

:Line(¯15,¯9,¯8,¯9)
:Line(¯8,¯9,¯8,¯2)
:Line(¯8,¯2,¯15,¯2)
:Line(¯15,¯2,¯15,¯9)

:Line(¯4,9,10,9)
:Line(¯4,2,10,2)
:Line(¯4,9,¯4,2)
:Line(10,9,19,2)

:Line(¯4,¯9,10,¯9)
:Line(¯4,¯2,10,¯2)
:Line(¯4,¯9,¯4,¯2)
:Line(10,¯9,19,¯2)

:Line(¯15,1,¯7,1)
:Line(¯15,¯1,¯7,¯1)
:Line(¯5,1,20,1)
:Line(¯5,¯1,¯20,¯1)
:Line(¯7,¯1,¯7,¯9)
:Line(¯5,¯1,¯5,¯9)
:Line(¯7,1,¯7,9)
:Line(¯5,1,¯5,9)

Golfizado:

:18→Xmax:¯18→Xmin:10→Ymin:¯10→Ymin:AxesOff:Line(¯15,9,¯8,9:Line(¯8,9,¯8,2:Line(¯8,2,¯15,2:Line(¯15,2,¯15,9:Line(¯15,¯9,¯8,¯9:Line(¯8,¯9,¯8,¯2:Line(¯8,¯2,¯15,¯2:Line(¯15,¯2,¯15,¯9:Line(¯4,9,10,9:Line(¯4,2,10,2:Line(¯4,9,¯4,2:Line(10,9,19,2:Line(¯4,¯9,10,¯9:Line(¯4,¯2,10,¯2:Line(¯4,¯9,¯4,¯2:Line(10,¯9,19,¯2:Line(¯15,1,¯7,1:Line(¯15,¯1,¯7,¯1:Line(¯5,1,20,1:Line(¯5,¯1,¯20,¯1:Line(¯7,¯1,¯7,¯9:Line(¯5,¯1,¯5,¯9:Line(¯7,1,¯7,9:Line(¯5,1,¯5,9

Si, la falta de ) es intencional.

Talla:

Line(y todos los comandos como ese ocupan 1 byte, cada número toma un byte. Eso es 323 bytes.

Eso fue absolutamente tedioso. Espero obtener esto en un emulador (tengo que ingresar todo manualmente) pero literalmente son solo líneas en la forma de la bandera.

hierba carbonizada
fuente
1
@ Random832 Curiosamente, ¡sí! Verifique el tamaño del token aquí: tibasicdev.wikidot.com/line No estoy seguro de cuál es el byte exactamente. Sin embargo, sé que en la calculadora, se trata esencialmente como un personaje.
charredgrass
1
@ Random832 El byte para Line(es 0x9C. Puede ver una tabla de tokens de un byte aquí: tibasicdev.wikidot.com/one-byte-tokens
f ''
1
¿No podrías graficar usando regiones (usando <y >) en lugar de líneas para obtener sombreado en escala de grises?
mbomb007
77
¿Por qué esto no es competitivo?
Mego
1
Tenga en cuenta que ahora hay un color TI-84, por lo que probablemente podría ejecutarlo allí con solo modificaciones menores.
Moshe Katz
6

C#, 384 346 317 292 291 289 bytes

Solución simple con Windows Forms y GDI

Func<int,int,Point>p=(x,y)=>new Point(x*10,y*10);var b=new Bitmap(250,180);var g=Graphics.FromImage(b);g.Clear(Color.Blue);g.DrawLines(new Pen(Color.White,40),new[]{p(0,9),p(50,9),p(9,-20),p(9,18)});g.DrawLines(new Pen(Color.Red,20),new[]{p(0,9),p(50,9),p(9,-20),p(9,18)});b.Save("b.png");

Uso

Inicie un nuevo proyecto de consola y coloque el código anterior en el método principal, agregue System.Drawing-Namespace.

Cómo funciona

El código crea una nueva imagen y dibuja algunas líneas sobre ella. Guarda la imagen en el disco. Algunos de los puntos finales de las líneas están fuera del área visible.

ingrese la descripción de la imagen aquí

soema
fuente
Bienvenido a PPCG! Gran primer codegolf, pero parece que podrías mejorarlo. Primero, creo que puede eliminar algunos espacios aquí y allá ( b = new=> b=new, using ()=> using(), no use espacios después de ;s. Si lo desea, puede leer nuestros Consejos para jugar golf en C # para encontrar algunos consejos.
Katenkyo
Gracias, los espacios se eliminan y también elimino la declaración de uso. También uso variables anónimas ahora.
soema
¿Seguro que necesitas Process.Start(f);? Según tengo entendido, eso es similar a cmd start. Como puede elegir guardar o mostrar la imagen y ya la guardó, ese paso parece inútil. En cuyo caso, tal vez pueda evitar declarar la variable f también.
manatwork
¡Si! Solo ahorre ahora y no abra más ...
soema
Debe contar los bytes para los espacios de nombres using, así como para una declaración de método o repetitivo de programa. Todo esto es parte de lo que se necesita (la tarea le da la opción de elegir una función o un programa, pero no la opción de solo un conjunto de declaraciones).
Joey
6

Python IDLE, 191 172 156 bytes

IDLE es el IDE estándar de Python. A menos que tenga un tema personalizado, STDOUTes azul, STDERRes rojo y el fondo es blanco. Entonces, el siguiente código:

from sys import*
x=[1]*7;y=[0]*7;z=[0,2,2,0]
f=[x+z+x*2]*4+[y+z+y*2,[2]*25]
for s in f+f[::-1]:[[stderr,stdout][-x].write(' █'[x>0]*2)for x in s];print()

Produce esta salida:

ingrese la descripción de la imagen aquí

Como los caracteres impresos no son cuadrados, esto está ligeramente apagado, pero si consideramos que 1 unidad tiene 2 caracteres de ancho y 1 carácter de alto, entonces las proporciones son exactas.

Esto se puede jugar al golf, reduciendo a la mitad la dimensión del ancho y utilizando un carácter ASCII para los bloques, por ejemplo '#', pero no tiene exactamente el mismo efecto.


Explicación

El código en sí parece bastante descuidado en este momento, y definitivamente se puede jugar, pero la idea básica es:

  • Construya una matriz donde 0represente el espacio en blanco, 1represente un bloque azul y 2represente un bloque rojo.
    • La primera mitad se construye (principalmente a través del corte / multiplicación de listas), y se agrega al reverso de sí misma para generar la bandera completa.
  • Realice un bucle a través de la matriz, imprimiendo cada valor como espacio en blanco o un bloque a STDERR/ en STDOUTconsecuencia. Imprima una nueva línea después de cada fila.
FlipTack
fuente
6

Tortuga Python, 176 bytes

Otra implementación de Python Turtle pero esta vez basada en estampar en lugar de dibujar :

from turtle import*
shape("square")
c=color
c("navy")
z=shapesize
z(18,25)
s=stamp
s()
c("white")
z(4,25)
s()
bk(70)
seth(90)
s()
c("#d72828")
z(2,18)
s()
home()
z(2,25)
done()

El uso de estampado, y no hacerlo fácilmente escalable, ahorra unos 60 bytes de código.

ingrese la descripción de la imagen aquí

La parte divertida es que puede reemplazar la "square"opción de polígono con la "turtle"opción de polígono en la shape()llamada y obtener un logotipo ecogroovy:

ingrese la descripción de la imagen aquí

cdlane
fuente
5

Perl, 134 bytes

Nota: en \x1brealidad es el carácter de escape ASCII y cuenta como 1 byte

($b,$w,$r)=map"\x1b[48;5;${_}m",18,15,1;print@l=("$b "x7,"$w $r  $w $b",$"x14,$/)x7,@m=("$w "x8,"$r  ","$w "x15,$/),("$r "x25,$/)x2,@m,@l

Uso

Guardar como iceland-flag.ply ejecutar a través de:

perl iceland-flag.pl

Bandera aplastada

Utiliza secuencias de escape ANSI y asume un terminal de Linux para mostrar la bandera. Parece un poco extraño usando las medidas proporcionadas.

Perl, 141 bytes

Esta versión se ve un poco más cerca de las dimensiones genuinas ...

($b,$w,$r)=map"\x1b[48;5;${_}m",18,15,1;print@l=("$b "x14,"$w  $r    $w  $b",$"x28,$/)x7,@m=("$w "x16,"$r "x4,"$w "x30,$/),("$r "x50,$/)x2,@m,@l

Bandera menos aplastada

Dom Hastings
fuente
1
La rareza proviene del hecho de que los personajes son más altos que su ancho.
Erik the Outgolfer
@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ De hecho, me preguntaba si había fuentes cuadradas de ancho fijo, ¡pero no imagino que se verían particularmente bien! Podría actualizar esa segunda versión para ver aún más de cerca (no debería tomar más bytes de lo que es actualmente, pero el tiempo ...)
Dom Hastings
En un TTY, no puede preguntarse tal cosa, ¡la fuente es THE FONT! No puedes cambiarlo solo porque no te gusta.
Erik the Outgolfer
5

SpecaBAS - 150 bytes

1 a=15,b=250,c=180: FOR i=1 TO 5: READ k,x,y,w,h: RECTANGLE INK k;x,y,w,h FILL: NEXT i
2 DATA 1,0,0,b,c,a,71,0,40,c,a,0,71,b,40,2,81,0,20,c,2,0,81,b,20

Lee el color de la tinta, x, y, ancho y alto y dibuja un rectángulo con esas coordenadas / dimensiones.

ingrese la descripción de la imagen aquí

Brian
fuente
¿Necesitas espacios después de cada uno :? Ah, y son 151 bytes.
Erik the Outgolfer