Disegna la bandiera nazionale dell'Islanda


107

Quest'anno UEFA Euro 2016 è terminata e oltre a un paio di titoli negativi c'è stata anche una sorpresa molto positiva: la squadra di calcio nazionale islandese . Disegniamo la loro bandiera nazionale.

Ingresso

Bene, ovviamente questa sfida non ha input.

Produzione

  • Disegna la bandiera dell'Islanda in qualsiasi formato visivo applicabile di almeno 100 x 72 pixel o 25 x 18 caratteri .
  • Salvare l'output in un file o presentarlo immediatamente - i formati di esempio sono: immagini come png, jpg ecc., Grafica vettoriale, disegnare su tela HTML o persino utilizzare caratteri non bianchi per la visualizzazione.
  • Utilizzare questi colori : blu : #0048e0, bianco : #ffffffe rosso : #d72828.
  • Se la tua lingua non supporta valori di colore specifici, utilizza i valori standard per rosso , blu e bianco dai codici colore ANSI .
  • Disegna la bandiera con le proporzioni corrette, come mostrato nella figura seguente:

boilerplate

  • È possibile scrivere un programma o una funzione. Se si tratta di una funzione anonima, si prega di includere un esempio di come invocarlo.
  • Questo è quindi la risposta più breve in byte vince.
  • Le scappatoie standard non sono ammesse.

Classifica

Se non riesci a trovare la risposta, formatta la lingua e il conteggio dei byte come spiegato nella " Sezione Informazioni " della classifica .


Questa sfida è ispirata a Disegna la bandiera nazionale della Francia .


20
Molto più impegnativa sarebbe la bandiera del mio paese, che quest'anno ha fatto molto meglio del previsto in euro, il Galles. :-)
Gareth,

24
@Gareth Non vedo l'ora di una specifica impermeabile del drago. ;)
Martin Ender l'

4
Sembra che il blu nell'immagine sopra sia più scuro dell'attuale#0048e0
Luis Mendo l'

10
@MartinEnder La scultura su una tavoletta di pietra conta? È impermeabile.
user253751,

5
@MartinEnder Mathematica ne avrà uno.
gcampbell,

Risposte:


259

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

Utilizzando PIL versione 1.1.7 che ha un metodo di offset deprecato ma non rimosso.

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 un'immagine di 25 * 18 pixel riempita di rosso, quindi disegna un rettangolo di 23 * 16 pixel riempito di blu con contorno bianco di un pixel. Quindi sposta l'immagine di (9,9) che si avvolge sui bordi, la ridimensiona a 100 * 72 e la mostra in una finestra.

Contrassegna prima della compensazione:

inserisci qui la descrizione dell'immagine (ridimensionato a 100 * 72)

Produzione:

inserisci qui la descrizione dell'immagine

Animato:

inserisci qui la descrizione dell'immagine

Edit1: golfato 18 byte rimuovendo il ritaglio creando inizialmente un'immagine 25 * 18.

Edit2: golfato 1 byte usando #fffinvece di white.

Edit3: golfato 2 byte aliasing import.

Edit4: golfato 2 byte rimuovendo il secondo argomento del metodo offset.

Modifica5: golfato 7 byte mostrando l'immagine invece di salvarla. (necessita di imagemagick installato su Unix)

Edit6: golfato 1 byte riscrivendo le importazioni.

Edit7: golfed 12 byte riscrivendo nuovamente le importazioni. (grazie di @Dennis)

Edit8: aggiunta animazione.

Edit9: animazione aggiornata in quanto mancava l'ultimo fotogramma.

Edit10: Golfed 4 byte grazie ad Albert Renshaw!


42
Davvero una bella risposta.
inserireusernamehere

17
Questo è geniale! (Viking) Cappello a te.
Ioannes,

25
Wow, è raro che io voti su domande di tipo golf code su SO, ma è ancora più raro che mi unirò a una comunità completamente nuova solo per farlo. Questo hack offset ricorda ciò che eravamo soliti fare prima che voi giovani sbattitori potessimo lavorare con i tuoi oodlebyte di memoria. Lavoro eccellente.

5
genio, davvero! 💡
InuYaksa,

3
Se lo fai from PIL.ImageDraw import*, Idiventa Imagee D.Drawdiventa Draw, salvando 11 byte.
Dennis,

117

codice macchina in modalità reale x86 per DOS COM, 69 65 63 62 byte

Bandiera islandese prodotta

Il codice deve essere eseguito come eseguibile COM DOS.

Ringraziamenti speciali

  • meden , salvato quattro byte.
  • meden , salvato due byte e rimosso lo sfarfallio.

Codice macchina (in byte esadecimali)

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

Fonte di assemblaggio

La fonte è per 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

13
Questa è una prima risposta davvero interessante! Benvenuto!
AdmBorkBork,

5
Puoi salvare 2 byte sostituendo "mov" con "xchg" alle 10h e 13h e altri 2 byte sostituendo "test cx, cx / jz" con "jcxz" alle 16h
data

3
Qualche altro pensiero. Dal momento che il programma viene eseguito in ciclo infinito, è possibile evitare lo sfarfallio solo facendo il ciclo più breve: _loop: jcxz _loop. Puoi anche tagliare 2 byte dalla fine del blocco dati se cambi l'ordine di caricamento di cxedi
meden,

Grazie ancora @meden. Lo sfarfallio era completamente inutile in effetti :) Ho anche rimosso il mov bx, 320e spostato il 320 in add di, 320(precedentemente add di, bx).
Margaret Bloom,

Grande. Ora hai un vantaggio decisivo su tutte le risposte al codice macchina in questa sfida. Solo per motivi di correttezza: sarebbe meglio spostarsi jcxz _cyclesubito dopo in xchg ax,cxmodo da non caricare byte oltre la fine dei dati. E ci sono alcuni commenti fuorvianti nella fonte: ;dx = row. dxnon viene utilizzato da nessuna parte nel codice.
data

55

C, 194 191 183 183 byte

#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 aggiungendo uno @sul #define A
-8 aggiungendo [su#define C

uso

main(){f();}

Produzione

Immagine

in base a questo commento valido dal PO

Uscita a doppia dimensione, 204 byte

#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");}

image2


22
il 5 ° voto ha innescato una rete di rappresentanti +810 in tutto ... Grazie! (Sì, è il primo sito in cui raggiungo i 200 rappresentanti: D)
Giacomo Garabello,

1
Il risultato non deve essere "almeno 100 x 72 unità, dove un'unità è un pixel o un carattere"? Ciò non soddisfa questo requisito, ma sospetto che l'OP abbia commesso un errore nel formulare tale definizione.
Kritzefitz,

4
@Kritzefitz Bene, un personaggio occupa molti pixel, quindi può essere un pixel anziché un personaggio. Ho trovato un buco.
Erik the Outgolfer,

@GiacomoGarabello Qual è il primo sito nella foto in cui hai fatto +150? Non riconosco l'icona.

@LegoStormtroopr It's PPCG !! Dai un'occhiata a questo progetto GitHub!
Giacomo Garabello,

31

Excel VBA, 254 228 153 byte

Non è stato davvero possibile trovare un modo per impostare le dimensioni di colonna / riga su pixel (rendendoli così quadrati) a causa del modo in cui Excel lo gestisce, quindi renderli belli e quadrati prima.

Modifica 1: sostituito RGB con valori restituiti per i colori, -26 byte

Modifica 2: ho cercato di aggiungere quanti più suggerimenti possibili, -75 byte. Non sono stato in grado di utilizzare &48e0come colore e non sono sicuro del perché. Grazie a tutti

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

Immagine: Bandiera Islanda


Come hai fatto a quadrare le celle? L'hai fatto manualmente o con qualche altro script non incluso? Mi piacerebbe vederlo, anche se non fa parte del tuo programma segnato.
mbomb007,

L'ho fatto manualmente, il codice per modificare la larghezza della cella è abbastanza facile da dove avrei potuto aggiungerlo ma le dimensioni non sono coerenti tra le righe / colonne o le risoluzioni del monitor a meno che non imposti le dimensioni in base a pixel che non possono essere fatti da quello che ho potuto trovare. Da quello che ho letto devi trovare la risoluzione e fare un po 'di matematica per convertire i pixel nella dimensione accettata dalla funzione.
tjb1,

1
Inoltre, il codice per convertirlo in pixel sembra che richieda il codice fisso di una parte della risoluzione o PPI (non capisco davvero la formula), quindi sembra che non funzionerebbe su tutti i dispositivi.
tjb1,

2
E, solo per completezza (a proposito dell'impostazione di celle quadrate anziché della soluzione stessa), se passi alla vista del layout di pagina, puoi impostare l'altezza e la larghezza delle celle su valori specifici come 0.2cm. Questo verrà mantenuto una volta tornato indietro, e non c'è bisogno di provare a elaborare le bizzarre proporzioni di Excel :-) A proposito, se vuoi alcuni trucchi Excel più interessanti, dai un'occhiata al video "You suck at Excel" di Joel Spolsky.

3
Penso che gli spazi extra possano essere rimossi, anche se vengono aggiunti automaticamente in seguito.
Erik the Outgolfer,

29

MATL , 57 56 52 49 48 byte

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

Questo produce la figura seguente (testato con il compilatore in esecuzione su Matlab e su Octave).

inserisci qui la descrizione dell'immagine

EDIT: puoi provare sperimentalmente su MATL Online! (potrebbe essere necessario ricaricare la pagina se inizialmente non funziona).

Come funziona

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

26

CSS, 285 284 264 byte

*,: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

Salvato 1 byte grazie a @insertusernamehere.

20 byte salvati grazie a @ user2428118, rimuovendo tutti pxi messaggi. Tieni presente che ciò richiede il rendering della pagina in modalità strane, quindi non funziona negli Stack Snippet.

Potrei copiare l'approccio Python di avvolgere un'immagine con un offset, ma non sarebbe interessante.

Ungolfed:

*, *::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 }

Questo utilizza gli pseudo-elementi (elementi che non sono scritti in HTML) ::beforee ::afterper creare le linee sul flag. Il motivo per cui funziona senza HTML è che in HTML5 gli elementi <html>e <body>sono opzionali, quindi i browser li creano automaticamente se non sono presenti.

Più divertimento:


2
Puoi comunque salvare 1 byte sostituendolo whitecon #fff.
inserireusernamehere l'

@inserireusernamehere Sì, grazie.
gcampbell,

1
Se si applica il CSS in modalità stranezze (pagina senza doctype) è possibile ridurlo a 264 byte omettendo pxovunque.
user2428118,

@ user2428118 Ancora più utile considerando che non c'è HTML, quindi no <!doctype html>!
wizzwizz4,

@ user2428118 Per qualche motivo non funziona per me in Safari mobile. Darò un'occhiata quando sarò il prossimo a un computer.
gcampbell,

26

Bash + Imagemagick 7, 94 90 86 85 byte

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

Salvato 8 byte, grazie a @manatwork e 1 byte, grazie a @ GlennRanders-Pehrson


5
Se si specifica x:invece il nome del file di output, convertverrà visualizzato il risultato in una finestra, che è anche accettabile. Ed è sufficiente per sfuggire solo il forte, non c'è bisogno di citare: \#d72828.
arte

2
Di solito etichettiamo risposte come Bash + Imagemagick . Sul bashlato è possibile salvare un altro 4 caratteri: convert -size 84x56 xc:#0048e0 ${s=-splice 8x8}+28+28 -background \#d72828 $s+32+32 x:.
arte

Solo una domanda stupida: puoi farlo ${s=-splice 8x8}+56?
Erik the Outgolfer,

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ +56viene trattato come +56+0no +28+28.
bodqhrohro,

2
È possibile salvare un altro byte utilizzando una versione recente di ImageMagick; quindi il comando può essere "magick" anziché "convert".
Glenn Randers-Pehrson,

20

ZX Spectrum BASIC, 210 141 92 byte

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

inserisci qui la descrizione dell'immagine

Dimensione determinata come dimensione del programma BASIC su nastro via SAVE. Gran parte del merito golfistico di alcuni membri del gruppo ZX Spectrum su Facebook , in particolare @impomatic e Johan Koelman.


Vedere quelli PAPERe BRIGHTporta tanti bei ricordi :-)
Luis Mendo,

Ci sono informazioni su quanta memoria richiede un programma ZX Spectrum BASIC? Ho pensato che fosse un linguaggio "tokenizzato", vale a dire che mi aspettavo FOR, NOTecc. , Che occupasse solo 1 o forse 2 byte ciascuno
Luis Mendo,

1
@LuisMendo Sì, è tokenizzato - FORè precisamente un byte. Tuttavia, i numeri sono "anti-tokenizzati" in quanto sono memorizzati sia come testo che in forma binaria e occupano 5 byte in più di quanto ti aspetteresti, quindi NOT PIinvece di zero e simili.
Philip Kendall,

132 byte rimuovendo l'AT e regolando il test di confine twitter.com/john_metcalf/status/752760203007791105
impomatic

1
122 byte con alcune ulteriori ottimizzazioni twitter.com/john_metcalf/status/752783690179211264
impomatic

15

ZX Spectrum Z80 Assembly, 65 byte

    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

Bandiera islandese


14

Minecraft 1.10.2, 734 caratteri

Potrebbe essere 734 caratteri, ma è l'unica presentazione finora fatta di lana reale!

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]}]}]}]}

Vai a circa -5x -5z, incolla in un blocco comandi Impulse, impostalo su "Sempre attivo" e premi Fine.

La bandiera si estende da 0, 0 a 100, 72; e si trova a 3 blocchi sopra il blocco comandi come posizionato. Si getta un'ombra abbastanza grande , e mostri deporre le uova sotto di essa. Se questo è accurato per il paese dell'Islanda, tuttavia, è supposizione di chiunque.

Un avvertimento equo: ucciderà / ucciderà tutte le persone MinecartCommandBlocknel mondo per salvare quattro personaggi. Non correre questo in un mondo a cui sei eccessivamente attaccato.

Bandiera

Ha usato il combinatore di comandi di MrGarretto e ha modificato leggermente l'output (808 -> 734)


1
"Se questo è accurato per il paese dell'Islanda ..."
Jordan

2
Non puoi semplicemente usare kill @e senza l'argomento selettore di destinazione?
Ucciderà

11

Logo, 216 188 byte

Utilizzando l'implementazione di Calormen.com . Per voi puristi, l'implementazione usa un po 'di antialiasing che rende leggermente più sfumati i bordi. Ho sprecato 3 byte nascondendo la tartaruga, quindi dovrei rimediare.

Ciò potrebbe ridursi notevolmente se l'implementazione del logo consente di impostare le dimensioni della finestra. Quindi puoi wrape far passare l'aratro di tartaruga per fare la croce in quattro colpi e saltare dovendo tagliarla con un bordo.

screenshot di flag generato

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

Non sapevo che esistesse una versione in lingua inglese di Logo!
Vincent,

1
Assolutamente. Penso di averlo visto per la prima volta oltre 30 anni fa su una Apple IIe. L'ho anche avuto sul mio computer a colori TRS-80. Era il mio primo assaggio di usare gli angoli in geometria, anni prima che lo imparassi ufficialmente a scuola.
GuitarPicker,

Perché il bordo bianco attorno ad esso?
Solomon Ucko,

1
Ho disegnato le linee usando una grande penna, che lascia bordi arrotondati sulle punte della croce, quindi ho dovuto spazzare intorno con una grande gomma per quadrarle. Stavo scrivendo un'altra versione di questo che utilizzava un metodo completamente diverso in Logo e si rivelò più piccolo. Stavo anche lavorando a una terza versione che stampa una grande croce latina Unicode e la dipinge, ma le proporzioni non erano giuste e le dimensioni sembravano eccedere questa.
GuitarPicker,

10

Java 8, 449 447 byte:

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 risposta molto tardi, e anche la più lunga qui, a quanto pare. Utilizza la java.awt.Graphicsclasse per creare e aprire una finestra con la bandiera al suo interno, creata da 5 rettangoli totali costituiti da 1 per i blocchi blu, 2 per le strisce bianche e 2 per le strisce rosse. Utilizza 7 pixel: 1 rapporto di unità. In altre parole, per ogni unità vengono utilizzati 7 pixel. Ecco un'immagine dell'output su un Macintosh con OS X 10.11:

Esempio di output

Ora per trovare un modo per giocare a golf un po 'di più ...


Prova a sostituire paintanziché paintComponent. Prendi in considerazione l'utilizzo di una classe anonima per JPanel. Prendi in considerazione solo l'uso di BufferedImage e l'output in un file.
Giustino,

@Justin In realtà, stavo già usando Blue1 rettangolo enorme per lo sfondo. Mi sono appena confuso tra questa e un'altra versione che ho realizzato in Python. Indipendentemente da ciò, grazie per gli altri suggerimenti! :)
R. Kap

Alcuni altri suggerimenti: non usare a JPanel, basta semplicemente sostituire il JFrame. Se lo fai e solo esegui l'override paint, non hai bisogno di Swing, solo AWT, quindi modifica JFramein Framee rimuovi l'importazione. Non chiamare super.paint. Riorganizzare il metodo principale; spostare il setSizenel paintmodo di nostro Frame, rimuovere la variabile J, e aggiungere .setVisible(true)alla fine della classe anonima. Infine, cambia .setVisible(true)in show()sì, sì è un metodo deprecato, ma è più breve. Utilizzare un interfaceper rimuovere il publicdal metodo principale.
Giustino,

Risultato finale a 338 caratteri (ha dovuto cambiare anche l'altezza dal momento che è una cornice):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
Ancora meglio: non dipingere il primo rettangolo, basta chiamare setBackground(color)(anche la dimensione era ancora sbagliata). Ora alle 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();}}
Giustino, il

10

R, 197 195 187 byte

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()

Rientrato, con nuove righe e spiegazioni:

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()

Bandiera dell'isola

Modifica : risulta frame(), contrariamente plot()o plot.new()non per impostazione predefinita, aggiungere un bordo alla trama, il che significa che bty="n"qui non era necessario.


9

File eseguibile Atari a 8 bit, 123 byte

Un'altra voce "solo per divertimento", questo programma è pensato per essere eseguito su un computer o emulatore Atari a 8 bit. Ad esempio, per caricare il programma su Atari800, basta eseguire:

atari800 iceland.xex

Codice macchina (in byte esadecimali)

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

Codice sorgente dell'assemblatore (può essere compilato 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

Come funziona:

Il programma utilizza un elenco di visualizzazione personalizzato basato sulla modalità ANTIC 8 (40 pixel per riga, 2 bpp). Le righe ripetute vengono caricate dalla stessa posizione di memoria. Dopo aver impostato il display, il programma entra in un ciclo infinito.

Immagine dello schermo:

iceland.xex in esecuzione su Atari800


9

FFmpeg, 339 184 byte

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

Proverò a giocare a golf in questo modo.

Immagine 100x72 della bandiera islandese


9

Python, 119 118 114 112 byte

Niente di speciale, semplice:

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

Output come PPM binario, utilizzo

python golf_iceland.py > iceland.ppm
  • Edit1: inserito un byte tra printe le virgolette
  • Edit2: leggermente più breve come PPM binario
  • Edit3: calcolato che \0può essere utilizzato al posto di\x00

Se qualcuno sa come utilizzare direttamente il carattere ASCII non stampabile, informalo.

Convertito in PNG


2
Congratulazioni! Mi hai battuto molto: D
Gábor Fekete,

2
@ GáborFekete ti ha battuto in byte, sì. Ma la tua risposta è molto più intelligente con quell'offset
Karl Napf,

Perché non avere i risultati delle fughe invece delle fughe stesse?
Solomon Ucko,

@SolomonUcko Ho provato b,w,r="\0Hà"*28,"ÿ"*12,"×(("*8e usando Python 3, ma non funziona.
Karl Napf,

@KarlNapf, come è fallito? È stato disegnato in modo errato o ha dato un messaggio di errore? Potrebbe anche essere un problema di codifica.
Solomon Ucko,

8

JavaScript, 267 byte

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'")


1
Sicuro che il rapporto 7-14 delle larghezze blu sinistra e destra sia corretto?
arte

1
@manatwork Oops, per qualche ragione ho pensato 100/25 = 5, quindi tutto è finito troppo largo del 25%.
Neil,

8

Java, 335 byte

La funzione è

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"));}

E scrive l'immagine desiderata come f.png, con una dimensione di 100x72

(Si noti che questo non è un concorrente diretto alla Risposta di R. Kap , perché scrive un file e non visualizza l'immagine sullo schermo)

Ecco la versione non modificata che può essere compilata ed eseguita:

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 a margine, per quanto riguarda le domande correlate: forse si dovrebbe creare una sfida per dipingere le bandiere di

  • Indonesia
  • Polonia
  • Finlandia
  • Francia
  • Olanda
  • Tailandia
  • Norvegia

allo stesso tempo:

inserisci qui la descrizione dell'immagine


7

SVG + Javascript, 190 165 164 byte

Nessun esperto lì, ripetendo un percorso solo per cambiare il colore e la larghezza della linea sembra sciocco 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">`)

Più leggibile:

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">`)

È possibile utilizzare al path d="m0,0h100v72H0"posto del rettangolo per salvare due byte. Allo stesso modo, utilizzare M0 36H100M36 0V72per i dati dell'altro percorso, che salva altri cinque byte. E puoi rilasciare l' styleattributo a favore della dichiarazione di entrambi stroke-widthe strokecome attributi per salvare altri cinque byte.
Joey,

7

Elaborazione , 136 byte

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);

Ungolfed

//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);

Produzione:

inserisci qui la descrizione dell'immagine


1
Puoi eliminare altri due byte usando fille rectinvece di sizee background. 134 byte: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,

Aggiungendo a ciò che GuitarPicker ha detto, fill(-1)è un byte più breve difill(255)
Kritixi Lithos,

7

Mathematica 174 157 byte

Senza builtin:

157 byte

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}]}

inserisci qui la descrizione dell'immagine

o in alternativa

232 byte

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]}]

inserisci qui la descrizione dell'immagine


1
prego. lo stesso può essere applicato alla tua seconda versione più lunga. u=Unitize;c=ConstantArrayecc ^ _ ^
Dan Oak,

1
Aspetta, c'è qualcosa per cui Mathematica non ha un builtin? Sono sorpreso.
Morgan Thrapp,

@MorganThrapp Sono sicuro che c'era un'altra risposta di Mathematica che utilizzava un built-in.
gcampbell,

3
C'èCountryData["Iceland", "Flag"]
dwa,

7

JavaScript (ES6), 231 240

Codice all'interno dello snippet di seguito. Eseguilo per testare.

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)


7

ZX Spectrum Z80 Assembly, 51 byte

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

inserisci qui la descrizione dell'immagine


7

J, 86 84 83 byte

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

L'approccio è lo stesso di @ Gábor Fekete con Python.

L'argomento sinistro colorsper viewmatè una matrice di valori RGB, nel nostro caso:

255 255 255
  0  72 224
215  40  40

E l'argomentazione giusta è una matrice di indici di colors.
(_9 _9 |. matrix)indica di spostare matrix9 elementi in ogni dimensione.
La costruzione spaventosa si (border ([,~[,.~[,[,.]) matrix)avvolge matrixcon il numero border.
E ne (14 21 $ 1)fa una matrice 14 × 21.

L'output viene visualizzato in una finestra ridimensionabile separata, abbastanza grande per impostazione predefinita. inserisci qui la descrizione dell'immagine

Grazie

miglia - salvato 2 byte con riordino dei colori, utilizzato la funzione ,che duplica i numeri (255) per l'accordo di forma.


1
Sembra che l'altezza della bandiera sia di 26 unità invece di 25.
Gábor Fekete,

@ GáborFekete hm, intendevi che l'altezza è 19 anziché 18? non ho detto questo, appena notato dopo il tuo commento
Dan Oak,

Oh giusto, ho scritto l'altezza ma ho usato i valori di larghezza ...
Gábor Fekete,

sì, davvero. ho fatto un errore nei valori. la forma della matrice iniziale dovrebbe essere 14 21( 18 25 - 4 4). correggendo ... grazie!
Dan Oak,

1
È possibile salvare 2 byte riordinando i valori rgb(255,0 72 224,:215 40 40)viewmat _9 _9|.2(b=.[,~[,.~[,[,.])0 b 14 21$1
miglia

6

TI-BASIC (non concorrenziale), 323 byte

Il codice è scritto per la TI-84, 83 e varianti. Spero che non sia un problema che le dimensioni variano in base al dispositivo e che il codice non sia colorato.

Impostare:

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

Disegno:

: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)

golfed:

: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

Sì, la mancanza di )è intenzionale.

Taglia:

Line(e tutti i comandi come quello occupano 1 byte, ogni numero richiede un byte. Sono 323 byte.

È stato assolutamente noioso. Spero di ottenerlo su un emulatore (devo inserire manualmente tutto) ma è letteralmente solo linee a forma di bandiera.


1
@ Random832 Abbastanza stranamente, sì! Controlla qui la dimensione del token: tibasicdev.wikidot.com/line Non sono sicuro di quale sia esattamente il byte. Tuttavia so che sulla calcolatrice, viene trattato essenzialmente come un carattere.
charredgrass,

1
@ Random832 Il byte per Line(è 0x9C. Puoi vedere una tabella di token a un byte qui: tibasicdev.wikidot.com/one-byte-tokens
f ''

1
Non potresti rappresentare graficamente usando le regioni (usando <e >) invece delle linee per ottenere l'ombreggiatura in scala di grigi?
mbomb007,

7
Perché questo non è in competizione?
Mego

1
Si noti che ora esiste un colore TI-84, quindi è possibile eseguirlo con modifiche minori.
Moshe Katz,

6

C #, 384 346 317 292 291 289 byte

Soluzione semplice con Windows Form e 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

Avviare un nuovo progetto console e inserire il codice sopra nel metodo principale, aggiungere System.Drawing-Namespace.

Come funziona

Il codice crea una nuova immagine e traccia alcune linee su di essa. Salva l'immagine su disco. Alcuni dei punti finali delle linee sono al di fuori dell'area visibile.

inserisci qui la descrizione dell'immagine


Benvenuti in PPCG! Ottimo primo codegolf, ma sembra che potresti migliorarlo. In primo luogo, penso che puoi rimuovere alcuni spazi qua e là ( b = new=> b=new, using ()=> using(), non usare spazi dopo ;S. Se vuoi, puoi leggere i nostri Suggerimenti per giocare a golf in C # per trovare dei consigli.
Katenkyo,

Grazie, gli spazi vengono rimossi e cancello anche l'istruzione using. Adesso uso anche variabili anonime.
soema,

Sicuro di aver bisogno Process.Start(f);? A quanto ho capito, è simile a cmd start. Dato che puoi scegliere di salvare o visualizzare l'immagine e l'hai già salvata, quel passaggio sembra inutile. Nel qual caso forse puoi evitare di dichiarare anche la variabile f.
arte

Sì! Basta salvare ora e non aprire più ...
Soema,

È necessario contare i byte per lo spazio dei nomi using, nonché per una dichiarazione di metodo o un programma boilerplate. Tutto questo fa parte di ciò che è necessario (l'attività ti dà la scelta di una funzione o di un programma, ma non la scelta di un mucchio di istruzioni).
Joey,

6

Python IDLE, 191 172 156 byte

IDLE è l'IDE standard di Python. A meno che non abbia un tema personalizzato, STDOUTsia blu, STDERRsia rosso e lo sfondo sia bianco. Quindi, il seguente codice:

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 questo output:

inserisci qui la descrizione dell'immagine

Dato che i caratteri stampati non sono quadrati, questo è leggermente spento, ma se prendiamo 1 unità con 2 caratteri di larghezza e 1 carattere di altezza, le proporzioni sono esatte.

Questo potrebbe essere golfato, dimezzando la dimensione della larghezza e usando un carattere ASCII per i blocchi come '#', ma non ha esattamente lo stesso effetto.


Spiegazione

Il codice stesso sembra piuttosto sciatto al momento, e può sicuramente essere giocato a golf, ma l'idea di base è:

  • Costruisci una matrice dove 0rappresenta gli spazi bianchi, 1rappresenta un blocco blu e 2rappresenta un blocco rosso.
    • La prima metà viene costruita (principalmente attraverso la divisione / moltiplicazione dell'elenco) e aggiunta al retro di se stessa per generare il flag completo.
  • Passa attraverso la matrice, stampando ogni valore come uno spazio bianco o un blocco su STDERR/ di STDOUTconseguenza. Stampa una riga dopo ogni riga.

6

Python Turtle, 176 byte

Un'altra implementazione di Python Turtle ma questa volta basata sullo stampaggio anziché sul disegno :

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()

L'uso dello stamping e non rendendolo facilmente scalabile consente di risparmiare circa 60 byte di codice.

inserisci qui la descrizione dell'immagine

La parte divertente è che puoi sostituire l' "square"opzione poligono con l' "turtle"opzione poligono nella shape()chiamata e ottenere un logo ecogroovy:

inserisci qui la descrizione dell'immagine


5

Perl, 134 byte

Nota: in \x1brealtà è il carattere di escape ASCII e conta come 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

Salva come iceland-flag.pled esegui tramite:

perl iceland-flag.pl

Bandiera schiacciata

Utilizza sequenze di escape ANSI e presuppone un terminale Linux per visualizzare il flag. Sembra un po 'strano usando le misure fornite.

Perl, 141 byte

Questa versione sembra un po 'più vicina alle dimensioni originali ...

($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

Bandiera meno schiacciata


1
La stranezza deriva dal fatto che i personaggi sono più alti della loro larghezza.
Erik the Outgolfer,

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ In effetti, mi chiedevo se c'erano caratteri quadrati a larghezza fissa, ma non immagino che sarebbero stati particolarmente belli! Potrei aggiornare quella seconda versione per sembrare ancora più vicina (non dovrebbe richiedere più byte di quanto non sia attualmente, ma tempo ...)
Dom Hastings,

Su un TTY, non puoi chiederti una cosa del genere, il carattere è THE FONT! Non puoi cambiarlo solo perché non ti piace.
Erik the Outgolfer,

5

SpecaBAS - 150 byte

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

Legge il colore dell'inchiostro, x, y, larghezza e altezza e disegna un rettangolo con quelle coordinate / dimensioni.

inserisci qui la descrizione dell'immagine


Hai bisogno di spazi dopo ognuno :? Oh, ed è 151 byte.
Erik the Outgolfer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.