Dessine le drapeau national d'Islande


107

L'UEFA Euro 2016 de cette année est terminée et, à côté de quelques gros titres négatifs, une surprise très positive a également été émise: l'équipe de football islandaise . Tirons leur drapeau national.

Contribution

Eh bien, évidemment, ce défi n'a pas d'entrée.

Sortie

  • Dessinez le drapeau de l'Islande dans tout format visuel applicable d' au moins 100 x 72 pixels ou de 25 x 18 caractères .
  • Enregistrez la sortie dans un fichier ou présentez-la instantanément - les exemples de formats sont: des images telles que png, jpg, etc., des graphiques vectoriels, dessiner sur du canevas HTML ou même utiliser des caractères non-blancs pour la visualisation.
  • Utilisez ces couleurs : bleu : #0048e0, blanc : #ffffffet rouge : #d72828.
  • Si votre langue ne prend pas en charge des valeurs de couleur spécifiques, utilisez les valeurs standard pour le rouge , le bleu et le blanc des codes de couleur ANSI .
  • Dessinez le drapeau avec les bonnes proportions, comme indiqué dans la figure ci-dessous:

Plaque de cuisson

  • Vous pouvez écrire un programme ou une fonction. S'il s'agit d'une fonction anonyme, veuillez inclure un exemple expliquant comment l'invoquer.
  • C'est la réponse donc la réponse la plus courte en octets est gagnante.
  • Les failles standard sont interdites.

Classement

Si vous ne trouvez pas votre réponse, formatez votre langue et votre nombre d'octets comme expliqué dans la section " Infos " du tableau de classement .


Ce défi est inspiré par Draw du drapeau national de la france .


20
Le drapeau de mon pays, qui a également fait beaucoup mieux que prévu en euros cette année - le pays de Galles, serait beaucoup plus difficile. :-)
Gareth

24
@Gareth J'attends avec impatience une spécification imperméable du dragon. ;)
Martin Ender

4
Il semble que le bleu de l'image ci-dessus soit plus foncé que l'actuel#0048e0
Luis Mendo

10
@MartinEnder Est-ce que le graver sur une tablette de pierre compte? C'est imperméable.
user253751

5
@MartinEnder Mathematica en aura un.
Gcampbell

Réponses:


259

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

Utilisation de PIL version 1.1.7 qui utilise une méthode de décalage obsolète mais non supprimée.

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

Crée une image de 25 * 18 pixels remplie de rouge, puis dessine un rectangle de 23 * 16 pixels rempli de bleu avec un contour blanc d'un pixel. Il décale ensuite l’image de (9,9) qui l’emballe sur les bords, la redimensionne à 100 * 72 puis la montre dans une fenêtre.

Indicateur avant compensation:

entrez la description de l'image ici (redimensionné à 100 * 72)

Sortie:

entrez la description de l'image ici

Animé:

entrez la description de l'image ici

Edit1: Golfé 18 octets en supprimant le recadrage en créant initialement une image 25 * 18.

Edit2: Golfé 1 octet en utilisant à la #fffplace de white.

Edit3: Golfed 2 octets par aliasing imports.

Edit4: Golfed 2 octets en supprimant le deuxième argument de la méthode offset.

Edit5: Golfed 7 octets en affichant l'image au lieu d'enregistrer. (nécessite que imagemagick soit installé sous Unix)

Edit6: Golfé 1 octet en réécrivant les importations.

Edit7: Golfed 12 octets en réécrivant les importations. (merci par @Dennis)

Edit8: animation ajoutée.

Edit9: Animation mise à jour car il manquait la dernière image.

Edit10: Golfé 4 octets grâce à Albert Renshaw!


42
Vraiment bonne réponse.
insertusernamehere

17
C'est du génie! (Viking) Chapeau à toi.
Ioannes

25
Wow, il est rare que je vote sur des questions de type code-golf sur SO, mais il est encore plus rare que je rejoigne une toute nouvelle communauté juste pour le faire. Ce hack décalé rappelle ce que nous avions l'habitude de faire avant que vous, les jeunes whippersnappers, ne disposiez que de votre mémoire pour travailler. Excellent travail.

5
le génie, vraiment! 💡
InuYaksa

3
Si vous le faites from PIL.ImageDraw import*, Idevient Imageet D.Drawdevient Draw, en sauvegardant 11 octets.
Dennis

117

Code machine en mode réel x86 pour DOS COM, 69 65 63 62 octets

Drapeau de l'Islande produit

Le code est destiné à être exécuté en tant qu'exécutable COM COM.

Remerciement spécial

  • meden , sauvé quatre octets.
  • meden , a sauvegardé deux octets et a supprimé le scintillement.

Code machine (en octets hexadécimaux)

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

Source d'assemblage

La source est pour 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
C'est une première réponse vraiment cool! Bienvenue!
AdmBorkBork

5
Vous pouvez économiser 2 octets en remplaçant "mov" par "xchg" à 10h et 13h et encore 2 octets en remplaçant "test cx, cx / jz" par "jcxz" à 16h
meden le

3
Quelques autres pensées. Étant donné que le programme se déroule dans la boucle infinie, vous pouvez éviter le scintillement juste en faisant la boucle plus courte: _loop: jcxz _loop. Vous pouvez également couper 2 octets à partir de la fin du bloc de données si vous modifiez l'ordre de chargement de cxetdi
meden

Merci encore @ Meden. Le scintillement était totalement inutile :) J'ai également retiré le mov bx, 320et déplacé le 320 dans add di, 320(précédemment add di, bx).
Margaret Bloom

Génial. Vous avez maintenant une longueur d'avance sur toutes les réponses au code machine dans ce défi. Juste pour des raisons de correction: il vaut mieux se déplacer jcxz _cyclejuste après xchg ax,cxpour ne pas charger d'octets au-delà de la fin des données. Et il y a des commentaires trompeurs dans la source: ;dx = row. dxn'est utilisé nulle part dans le code.
meden

55

C, 194 191 183 octets

#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 ajoutant une @sur l' #define A
-8 ajoutant [le#define C

Usage

main(){f();}

Sortie

image

valide en se basant sur ce commentaire du PO

Double taille de sortie, 204 octets

#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
le 5ème vote positif a déclenché un réseau de représentants +810 sur l'ensemble du réseau ... Merci! (Oui, c'est le premier site où j'atteins le 200 rep: D)
Giacomo Garabello

1
Le résultat ne doit-il pas être "au moins 100 x 72 unités, où une unité est un pixel ou un caractère"? Cela ne répond pas à cette exigence, mais je suppose que le PO a commis une erreur en formulant cette définition.
Kritzefitz

4
@Kritzefitz Eh bien, un personnage prend beaucoup de pixels, il peut donc s'agir d'un pixel au lieu d'un personnage. Trouvé un trou.
Erik the Outgolfer

@GiacomoGarabello Quel est le premier site de la photo où vous avez obtenu +150? Je ne reconnais pas l'icône.

@LegoStormtroopr C'est PPCG !! Jetez un coup d'oeil à ce projet GitHub!
Giacomo Garabello

31

Excel VBA, 254 228 153 octets

Impossible de trouver un moyen de définir la taille des colonnes / lignes en pixels (ce qui les rend équitables) en raison de la façon dont Excel les traite, faites-les donc bien en premier.

Edition 1: RVB remplacé par des valeurs renvoyées pour les couleurs, -26 octets

Edit 2: J'ai essayé d'ajouter autant de suggestions que possible, -75 octets. Je ne pouvais pas utiliser &48e0comme couleur et je ne sais pas pourquoi. Merci tout le monde

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

Image: Drapeau islandais


Comment avez-vous fait les cellules carrées? L'avez-vous fait manuellement ou avec un autre script non inclus? J'aimerais bien le voir, même si cela ne fait pas partie de votre programme marqué.
mbomb007

Je l'ai fait manuellement, le code pour changer la largeur de la cellule est assez facile là où j'aurais pu l'ajouter, mais les tailles ne sont pas cohérentes entre les résolutions Ligne / Colonne ou moniteur, sauf si vous définissez la taille en fonction des pixels dont vous ne pouvez pas vous servir. ce que j'ai pu trouver D'après ce que j'ai lu, vous devez trouver la résolution et faire des calculs pour convertir les pixels à la taille que la fonction accepte.
tjb1

1
De plus, le code pour le convertir en pixels semble nécessiter le code dur d'une partie de la résolution ou du PPI (je ne comprends pas vraiment la formule), de sorte qu'il semble que cela ne fonctionnerait pas sur tous les périphériques.
tjb1

2
Et, pour être complet (pour la configuration de cellules carrées plutôt que pour la solution elle-même), si vous passez en mode de présentation de page, vous pouvez définir la hauteur et la largeur de cellule sur des valeurs spécifiques, telles que 0.2cm. Ceci sera maintenu une fois que vous revenez en arrière, et nul besoin d'essayer de travailler sur les rapports d'aspect Excel bizarres :-) A propos, si vous voulez des astuces Excel plus cools, recherchez la vidéo de "You suck at Excel" de Joel Spolsky.

3
Je pense que des espaces supplémentaires peuvent être supprimés, même s’ils sont ajoutés automatiquement plus tard.
Erik the Outgolfer

29

MATL , 57 56 52 49 48 octets

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

Ceci produit la figure suivante (testé avec le compilateur fonctionnant sur Matlab et Octave).

entrez la description de l'image ici

EDIT: Vous pouvez expérimenter sur MATL Online! (vous devrez peut-être recharger la page si cela ne fonctionne pas initialement).

Comment ça fonctionne

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 octets

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

Sauvegardé 1 octet grâce à @insertusernamehere.

Sauvegardé 20 octets grâce à @ user2428118, en supprimant tous les pxs. Notez que cela nécessite que la page soit rendue en mode quirks, de sorte que cela ne fonctionne pas dans Stack Snippets.

Je pourrais copier l'approche Python consistant à envelopper une image de manière décalée, mais cela ne serait pas intéressant.

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 }

Ceci utilise les pseudo-éléments (éléments qui ne sont pas écrits en HTML) ::beforeet permet ::afterde créer les lignes sur le drapeau. Si HTML ne fonctionne pas, c'est qu'en HTML5, les éléments <html>et <body>sont facultatifs. Par conséquent, les navigateurs les créent automatiquement s'ils ne sont pas présents.

Plus amusant:


2
Vous pouvez toujours sauvegarder 1 octet en remplaçant whitepar #fff.
insertusernamehere

@insertusernamehere Oui, merci.
Gcampbell

1
Si vous appliquez le code CSS en mode quirks (page sans doctype), vous pouvez le réduire à 264 octets en omettant pxpartout.
user2428118

@ user2428118 Encore plus utile étant donné qu'il n'y a pas de HTML, donc non <!doctype html>!
wizzwizz4

@ user2428118 Pour une raison quelconque, cela ne fonctionne pas pour moi dans Safari mobile. Je jetterai un coup d'oeil quand je serai à côté d'un ordinateur.
Gcampbell

26

Bash + Imagemagick 7, 94 90 86 85 octets

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

Sauvegardé 8 octets, grâce à @manatwork, et 1 octet, grâce à @ GlennRanders-Pehrson


5
Si vous spécifiez à la x:place du nom du fichier de sortie, convertle résultat sera affiché dans une fenêtre, ce qui est également acceptable. Et est suffisant pour échapper à la juste forte, pas besoin de citer: \#d72828.
Manatwork

2
Habituellement, nous appelons ces réponses Bash + Imagemagick . Sur bashcôté , vous pouvez enregistrer un autre 4 caractères: convert -size 84x56 xc:#0048e0 ${s=-splice 8x8}+28+28 -background \#d72828 $s+32+32 x:.
manatwork

Juste une question stupide: pouvez-vous faire ${s=-splice 8x8}+56?
Erik the Outgolfer

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ +56est traité comme +56+0, non +28+28.
bodqhrohro

2
Vous pouvez enregistrer un autre octet à l'aide d'une version récente d'ImageMagick. alors la commande peut être "magick" au lieu de "convertir".
Glenn Randers-Pehrson le

20

ZX Spectrum BASIC, 210 141 92 octets

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

entrez la description de l'image ici

Taille déterminée comme étant la taille du programme BASIC sur bande via SAVE. Une grande partie du crédit golfique attribué à certains membres du groupe ZX Spectrum sur Facebook , en particulier @impomatic et Johan Koelman.


En voyant cela PAPERet en BRIGHTapportant tant de bons souvenirs :-)
Luis Mendo

Existe-t-il des informations sur la quantité de mémoire nécessaire à un programme ZX Spectrum BASIC? Je pensais que c'était une langue « sous forme de jeton », à savoir que je m'y attendais FOR, NOTetc pour prendre seulement 1 ou peut - être 2 octets chacun
Luis Mendo

1
@LuisMendo Oui, c'est symbolisé - FORc'est précisément un octet. Cependant, les nombres sont "anti-tokenisés" en ce sens qu'ils sont stockés sous forme de texte et de formes binaires et occupent 5 octets de plus que prévu, donc NOT PIau lieu de zéro ou autre.
Philip Kendall

132 octets en supprimant l'AT et en ajustant le test de limite twitter.com/john_metcalf/status/752760203007791105
impomatic

1
122 octets avec quelques optimisations supplémentaires twitter.com/john_metcalf/status/752783690179211264
impomatic

15

Assemblage ZX Spectrum Z80, 65 octets

    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

Drapeau islandais


14

Minecraft 1.10.2, 734 caractères

Il pourrait s'agir de 734 caractères, mais c'est la seule soumission à ce jour faite de laine!

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

Allez à environ -5x -5z, collez-le dans un bloc de commande Impulse, réglez-le sur "Toujours actif" et appuyez sur Terminé.

Le drapeau s'étend de 0, 0 à 100, 72; et est 3 blocs au-dessus du bloc de commande comme placé. Il jette une ombre assez grande et des monstres apparaissent sous celle-ci. On peut se demander si cela est vrai pour l'Islande.

Avertissement juste - va / tuer tous les MinecartCommandBlocks dans le monde dans l’intérêt de sauver quatre personnages. Ne courez pas cela dans un monde auquel vous êtes trop attaché.

Drapeau

Utilisé commande de MrGarretto de combinateur et peaufiné la sortie un peu (808 -> 734)


1
"Que ce soit vrai pour le pays d'Islande ..."
Jordanie

2
Ne pouvez-vous pas simplement utiliser kill @e sans l'argument du sélecteur de cible? Ça va tuer le joueur mais bon le drapeau sera toujours là
Kuilin Li

11

Logo, 216 188 octets

Utilisation de l'implémentation de Calormen.com . Pour vous, puristes, la mise en oeuvre utilise un antialiasing qui plume un peu les bords. J'ai perdu 3 octets à cacher la tortue, cependant, cela devrait compenser.

Cela pourrait être considérablement réduit si votre implémentation de Logo vous permettait de définir la taille de la fenêtre. Ensuite, vous pourriez wrapfaire passer la tortue en croix pour faire la croix en quatre coups et éviter de la couper avec une bordure.

Capture d'écran du drapeau généré

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

Je ne savais pas qu'il y avait une version anglaise de Logo!
Vincent

1
Absolument. Je pense l'avoir vu pour la première fois il y a plus de 30 ans sur une Apple IIe. Je l'avais aussi sur mon ordinateur couleur TRS-80. C'était mon premier contact avec l'utilisation des angles en géométrie, des années avant que je ne l'apprenne officiellement à l'école.
GuitarPicker

Pourquoi la bordure blanche qui l'entoure?
Solomon Ucko

1
J'ai tracé les lignes à l'aide d'un grand stylo, qui laisse des bords arrondis sur les pointes de la croix. J'ai donc dû les contourner avec une grande gomme pour les ajuster. J'écrivais une autre version de celui-ci qui utilisait une méthode complètement différente dans Logo et qui se révélait plus petite. Je travaillais également sur une troisième version qui imprimait une grande croix latine Unicode et la peignait, mais les proportions n'étaient pas correctes et la taille semblait dépasser celle-ci.
GuitarPicker

10

Java 8, 449 447 octets:

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

Une réponse très tardive, et aussi la plus longue ici, apparemment. Utilise la java.awt.Graphicsclasse pour créer et ouvrir une fenêtre contenant le drapeau, qui est créée par 5 rectangles totaux composés de 1 pour les blocs bleus, 2 pour les bandes blanches et 2 pour les bandes rouges. Utilise un ratio de 7 pixels: 1 unité. En d'autres termes, pour chaque unité, 7 pixels sont utilisés. Voici une image de la sortie sur un Macintosh avec OS X 10.11:

Exemple de sortie

Maintenant, pour trouver un moyen de jouer au golf un peu plus ...


Essayez de paintremplacer au lieu de paintComponent. Pensez à utiliser une classe anonyme pour JPanel. Pensez simplement à utiliser BufferedImage et à exporter dans un fichier.
Justin

@Justin En fait, j'utilisais déjà Blue1 grand rectangle pour l'arrière-plan. Je viens de me mêler à cette version et à une autre version que j'ai réalisée en Python. Peu importe, merci pour les autres conseils! :)
R. Kap

Quelques suggestions supplémentaires: n'utilisez pas a JPanel, remplacez simplement le JFrame. Si vous faites cela et remplacez simplement paint, vous n'avez pas besoin de Swing, mais simplement d'AWT. Changez donc JFrameen Frameet supprimez l'importation. N'appelle pas super.paint. Réorganiser la méthode principale; déplacez le setSizedans la paintméthode de notre Frame, supprimez la variable Jet ajoutez-le .setVisible(true)à la fin de la classe anonyme. Enfin, changez .setVisible(true)pour être show()oui, c’est une méthode obsolète, mais elle est plus courte. Utilisez un interfacepour supprimer le publicde la méthode principale.
Justin

Résultat final à 338 caractères (il a également fallu changer de hauteur car c'est un cadre):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
Encore mieux: ne peignez pas le premier rectangle, appelez simplement setBackground(color)(la taille était toujours fausse). Maintenant à 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 octets

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

Indenté, avec nouvelles lignes et explications:

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

Drapeau de l'île

Éditer : s'avère frame(), contrairement plot()ou plot.new()non par défaut, ajouter une bordure au tracé, ce qui signifie que ce bty="n"n'était pas nécessaire ici.


9

Atari 8 bits exécutable, 123 octets

Autre entrée "juste pour le plaisir", ce programme est destiné à être exécuté sur un ordinateur ou un émulateur Atari 8 bits. Par exemple, pour charger le programme sur Atari800, exécutez simplement:

atari800 iceland.xex

Code machine (en octets hexadécimaux)

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

Code source de l'assembleur (peut être compilé avec 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

Comment ça fonctionne:

Le programme utilise une liste d’affichage personnalisée basée sur le mode ANTIC 8 (40 pixels par ligne, 2 bpp). Les lignes répétées sont chargées depuis le même emplacement de mémoire. Une fois l’affichage configuré, le programme entre dans une boucle infinie.

Capture d'écran:

iceland.xex s'exécutant sur Atari800


9

FFmpeg, 339 184 octets

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

Je vais essayer de jouer au golf .. plus loin.

Image 100x72 du drapeau de l'Islande


9

Python, 119 118 114 112 octets

Rien de spécial, simple:

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

Sortie en PPM binaire, utilisation

python golf_iceland.py > iceland.ppm
  • Edit1: placé un octet entre printet le guillemet
  • Edit2: légèrement plus court que PPM binaire
  • Edit3: Figuré qui \0peut être utilisé à la place de\x00

Si quelqu'un sait comment utiliser directement le caractère ASCII non imprimable, veuillez le faire savoir.

Converti en PNG


2
Toutes nos félicitations! Tu m'as beaucoup battu: D
Gábor Fekete

2
@ GáborFekete vous a battu en octets, oui. Mais votre réponse est beaucoup plus intelligente avec ce décalage
Karl Napf

Pourquoi ne pas avoir les résultats des évasions au lieu des évasions elles-mêmes?
Solomon Ucko

@SolomonUcko J'ai essayé d' b,w,r="\0Hà"*28,"ÿ"*12,"×(("*8utiliser Python 3, mais cela ne fonctionne pas.
Karl Napf

@ KarlNapf, comment cela a-t-il échoué? At-il mal dessiné ou donné un message d'erreur? Ce pourrait également être un problème d'encodage.
Solomon Ucko

8

JavaScript, 267 octets

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
Le rapport 7 - 14 des largeurs bleues gauche et droite est-il correct?
manatwork

1
@manatwork Oups, pour une raison quelconque, je pensais que 100/25 = 5, donc tout a fini par être 25% trop large.
Neil

8

Java, 335 octets

La fonction est

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

Et il écrit l'image souhaitée comme f.png, avec une taille de 100x72

(Notez qu'il ne s'agit pas d'un concurrent direct de Answer by R. Kap , car il écrit un fichier et n'affiche pas l'image à l'écran.)

Voici la version non-golfée qui peut être compilée et exécutée:

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

Une note de côté, concernant les questions connexes: Peut-être faudrait-il créer un défi pour peindre les drapeaux de

  • Indonésie
  • Pologne
  • Finlande
  • France
  • Pays-Bas
  • Thaïlande
  • Norvège

en même temps:

entrez la description de l'image ici


7

SVG + Javascript, 190 165 164 octets

Aucun expert, répétant un seul chemin juste pour changer la couleur et la largeur de la ligne a l'air stupide 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">`)

Plus lisible:

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

Vous pouvez utiliser à la path d="m0,0h100v72H0"place du rectangle pour enregistrer deux octets. De même, utilisez M0 36H100M36 0V72cette option pour les données de l'autre chemin, ce qui enregistre cinq octets supplémentaires. Et vous pouvez abandonner l' styleattribut au lieu de déclarer les deux stroke-widthet en stroketant qu'attributs pour enregistrer cinq octets supplémentaires.
Joey

7

Traitement , 136 octets

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

Sortie:

entrez la description de l'image ici


1
Vous pouvez supprimer deux octets supplémentaires en utilisant fillet rectau lieu de sizeet background. 134 octets: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

Ajout à ce que dit GuitarPicker, fill(-1)est un octet plus courte quefill(255)
Kritixi Lithos

7

Mathematica 174 157 octets

Sans construit:

157 octets

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

entrez la description de l'image ici

Ou bien

232 octets

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

entrez la description de l'image ici


1
vous êtes les bienvenus. idem peut être appliqué à votre deuxième version plus longue. u=Unitize;c=ConstantArrayetc ^ _ ^
Dan Oak

1
Attendez, il y a quelque chose que Mathematica n'a pas intégré? Je suis surpris.
Morgan Thrapp

@MorganThrapp Je suis sûr qu'il y avait une autre réponse Mathematica utilisant une fonction intégrée.
Gcampbell

3
Il y aCountryData["Iceland", "Flag"]
dwa

7

JavaScript (ES6), 231 240

Code à l'intérieur de l'extrait ci-dessous. Exécutez-le pour tester.

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

Assemblage ZX Spectrum Z80, 51 octets

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

entrez la description de l'image ici


7

J, 86 84 83 octets

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

L'approche est la même que celle de @ Gábor Fekete avec Python.

L'argument de gauche colorspour viewmatest un tableau de valeurs RVB, dans notre cas:

255 255 255
  0  72 224
215  40  40

Et le bon argument est une matrice d’indices de colors.
(_9 _9 |. matrix)indique de déplacer matrix9 éléments dans chaque dimension.
La construction effrayante (border ([,~[,.~[,[,.]) matrix)enveloppe matrixavec le nombre border.
Et (14 21 $ 1)fait 14 × 21 matrice de uns.

La sortie est affichée dans une fenêtre redimensionnable séparée, assez grande par défaut. entrez la description de l'image ici

Merci

miles - 2 octets enregistrés avec la réorganisation des couleurs, a utilisé la fonction ,qui duplique les numéros (255) pour l’accord de forme.


1
Il semble que la hauteur du drapeau soit de 26 unités au lieu de 25.
Gábor Fekete

@ GáborFekete hm, vous vouliez dire que la hauteur est de 19 au lieu de 18? n'a pas mentionné cela, juste remarqué après votre commentaire
Dan Oak

Oh oui, j'ai écrit hauteur mais j'ai utilisé les valeurs de largeur ...
Gábor Fekete

oui, en effet. J'ai commis une erreur dans les valeurs. la forme de la matrice initiale doit être 14 21( 18 25 - 4 4). corriger ... merci!
Dan Oak

1
Vous pouvez économiser 2 octets en réordonnant les valeurs en RVB(255,0 72 224,:215 40 40)viewmat _9 _9|.2(b=.[,~[,.~[,[,.])0 b 14 21$1
miles

6

TI-BASIC (non-concurrent), 323 octets

Le code est écrit pour la TI-84, 83 et ses variantes. J'espère bien que les dimensions ne varient pas en fonction du périphérique et que le code n'est pas coloré.

Installer:

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

Dessin:

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

Golfé:

: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

Oui, le manque de )volonté est intentionnel.

Taille:

Line(et toutes les commandes comme celle-ci prennent 1 octet, chaque nombre prend un octet. C'est 323 octets.

C'était absolument fastidieux. J'espère que j'obtiendrai ceci sur un émulateur (je dois tout saisir manuellement), mais il ne s'agit littéralement que de lignes en forme de drapeau.


1
@ Random832 Curieusement, oui! Vérifiez la taille du jeton ici: tibasicdev.wikidot.com/line Je ne suis pas sûr de ce que l'octet est exactement. Cependant, je sais que sur la calculatrice, il est traité essentiellement comme un caractère.
charredgrass

1
@ Random832 L'octet pour Line(est 0x9C. Vous pouvez voir un tableau de jetons sur un octet ici: tibasicdev.wikidot.com/one-byte-tokens
f ''

1
Ne pourriez-vous pas représenter graphiquement en utilisant des régions (en utilisant <et >) à la place de lignes pour obtenir des nuances de gris?
mbomb007

7
Pourquoi est-ce non-concurrent?
Mego

1
Notez qu'il existe maintenant une couleur TI-84, vous pouvez donc probablement l'exécuter avec des modifications mineures.
Moshe Katz

6

C # 384 346 317 292 291 289 octets

Solution simple avec Windows Forms et 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");

Usage

Démarrez un nouveau projet de console et mettez le code ci-dessus dans la méthode main, ajoutez System.Drawing-Namespace.

Comment ça fonctionne

Le code crée une nouvelle image et trace quelques lignes dessus. Il enregistre l'image sur le disque. Certains des points de fin des lignes sont en dehors de la zone visible.

entrez la description de l'image ici


Bienvenue chez PPCG! Excellent premier code-golf, mais il semblerait que vous puissiez l’améliorer. Tout d’abord, je pense que vous pouvez supprimer des espaces ici et là ( b = new=> b=new, using ()=> using(), n’utilisez pas d’espaces après ;s. Si vous le souhaitez, vous pouvez consulter nos Conseils de golf en C # pour trouver des conseils.
Katenkyo

Merci, les espaces sont supprimés et je supprime aussi l'instruction using. J'utilise aussi des variables anonymes maintenant.
Soema

Sûr vous avez besoin Process.Start(f);? Si je comprends bien, cela ressemble à cmd start. Comme vous pouvez choisir d'enregistrer ou d'afficher l'image et que vous l'avez déjà enregistrée, cette étape semble inutile. Dans ce cas, vous pouvez peut-être aussi éviter de déclarer la variable f.
manatwork

Oui! Il suffit d'économiser maintenant et aucune ouverture plus ...
soema

Vous devez compter les octets pour les espaces de noms using, ainsi que pour une déclaration de méthode ou un programme passe-partout. Tout cela fait partie de ce qui est nécessaire (la tâche vous donne le choix d’une fonction ou d’un programme, mais pas le choix d’un ensemble d’énoncés).
Joey

6

Python IDLE, 191 172 156 octets

IDLE est l'IDE standard de Python. Sauf si elle a un thème personnalisé, elle STDOUTest bleue, STDERRrouge et l’arrière-plan est blanc. Donc, le code suivant:

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

Produit cette sortie:

entrez la description de l'image ici

Comme les caractères imprimés ne sont pas carrés, cela est légèrement décalé, mais si nous prenons 1 unité pour avoir 2 caractères de large et 1 caractère de hauteur, les proportions sont exactes.

Cela pourrait être joué en divisant par deux la largeur et en utilisant un caractère ASCII pour les blocs tels que '#', mais cela n'a pas exactement le même effet.


Explication

Le code lui-même semble assez bâclé pour le moment, et peut certainement être joué au golf, mais l’idée de base est la suivante:

  • Construisez une matrice où 0représente un espace, 1un bloc bleu et 2un bloc rouge.
    • La première moitié est construite (principalement par tranchage / multiplication de liste), et ajoutée à l’inverse pour générer le drapeau complet.
  • Parcourez la matrice en imprimant chaque valeur sous forme d’espace ou de bloc à STDERR/ en STDOUTconséquence. Imprimer une nouvelle ligne après chaque ligne.

6

Tortue Python, 176 octets

Une autre implémentation de tortue Python mais cette fois-ci basée sur l' estampage au lieu de dessiner :

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'utilisation de l'estampillage, et non le rendre facilement évolutif, économise environ 60 octets de code.

entrez la description de l'image ici

La partie amusante est que vous pouvez remplacer l’ "square"option polygone par l’ "turtle"option polygone dans l’ shape()appel et obtenir un logo ecogroovy:

entrez la description de l'image ici


5

Perl, 134 octets

Remarque: \x1bcorrespond au caractère d'échappement ASCII et compte pour 1 octet.

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

Usage

Enregistrer sous iceland-flag.plet exécuter via:

perl iceland-flag.pl

Drapeau écrasé

Utilise les séquences d'échappement ANSI et suppose qu'un terminal Linux affiche l'indicateur. Ça fait un peu bizarre avec les mesures fournies.

Perl, 141 octets

Cette version ressemble un peu plus aux dimensions authentiques ...

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

Drapeau moins écrasé


1
La bizarrerie vient du fait que les personnages sont plus grands que leur largeur.
Erik the Outgolfer

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ En effet, je me suis demandé s'il existait des polices carrées à largeur fixe, mais je ne pense pas qu'elles seraient particulièrement belles! Je pourrais peut-être mettre à jour cette deuxième version pour qu'elle soit encore plus proche (elle ne devrait pas prendre plus d'octets qu'elle ne l'est actuellement, mais le temps ...)
Dom Hastings

Sur un ATS, vous ne pouvez pas vous demander une chose pareille, la police est THE FONT! Vous ne pouvez pas le changer simplement parce que vous ne l'aimez pas.
Erik the Outgolfer

5

SpecaBAS - 150 octets

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

Lit la couleur de l'encre, x, y, la largeur et la hauteur et dessine un rectangle avec ces coordonnées / dimensions.

entrez la description de l'image ici


Avez-vous besoin d'espaces après chacun :? Oh, et c'est 151 octets.
Erik the Outgolfer
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.