Tâche: produire le drapeau suisse.
Fête nationale suisse / Fête nationale suisse / Fête nationale suisse / Fiasta naziunala svizra / Fête nationale suisse / Schweizer Bundesfeiertag!
Détails:
Le drapeau consiste en une #FFFFFF
croix blanche ( ) sur un #FF0000
fond rouge ( ). La croix consiste en un carré 6x6 avec des bras de taille 6x7 collés de chaque côté. La croix est au centre du fond carré 32x32 ayant une distance de 6 unités de chaque côté. ( Source )
La taille de sortie peut être choisie par le participant, mais l'image doit correspondre exactement à ces proportions, ce qui signifie que sa taille doit être un multiple de 32.
Une version minimale ressemblerait à ceci:
echo 🇨🇭
- Je suppose que ce n'est pas autoriséRéponses:
SVG (HTML5),
94838264 octets2 octets sauvés grâce à @ThePirateBay. Sauvegardé 1 octet grâce à @ATaco. Enregistrement de 18 octets grâce à @CraigAyre indiquant qu'une image au format 32 × 32 était acceptable. Comme l'a souligné @Shaggy, cela suppose que votre arrière-plan par défaut est blanc; ajoutez 22 octets pour un drapeau qui fonctionne sur n’importe quel fond:
la source
>
dans votre balise path est optionnel.viewBox
pour la version minimale?<svg><path d=M0,0V32H32V0M6,13h7V6h6v7h7v6H19v6H13V19H6 fill=red
Code machine x86-16 pour DOS, 43 octets
Le code ci-dessus est conçu pour être assemblé en tant que fichier COM, puis exécuté sous DOS. Il appelle les services vidéo du BIOS ROM pour tracer les pixels individuels du drapeau, formant ainsi une représentation 32 × 32 du drapeau suisse dans le coin supérieur gauche de l'écran.
Le code suppose que le mode vidéo est déjà défini sur le mode 0x13, ce qui signifie également qu'il nécessite un affichage VGA. D'autres modes vidéo peuvent être utilisés, mais le format VGA nécessite deux choses: (1) des pixels carrés et (2) une palette par défaut comprenant un vrai 100% rouge (
0xFF0000
) (ce qui signifie que vous n'avez pas à perdre des octets pour changer de palette. couleurs). Avant d'exécuter ce programme, vous devrez donc basculer votre affichage en mode 0x13; le code suivant est tout ce dont vous avez besoin pour faire cela:Le code ne fait aucune autre hypothèse et doit être exécuté sur tout matériel compatible x86 sous un système d'exploitation compatible DOS.
Cependant, le programme se termine immédiatement après avoir dessiné l'indicateur. L'invite DOS est donc normalement réimprimée dans le coin supérieur gauche de l'écran, couvrant ainsi les quelques lignes supérieures de l'indicateur. Par conséquent, si vous voulez vous émerveiller de la véritable sortie, vous devez suspendre / mettre en pause le système avant qu'il ne soit
RET
uriné. Voici une capture d'écran de ce à quoi cela ressemble, s'exécutant sur une machine virtuelle FreeDOS:Il serait peut-être possible de jouer au golf plus loin en écrivant des données de pixels directement dans le tampon vidéo, d’autant plus que j’assume déjà le mode 0x13. Je n'ai pas encore essayé.
INT 0x10
est déjà une instruction assez courte, mais si je peux utiliser les instructions de chaîne sur un octet pour écrire des données de pixels directement dans la mémoire, cela pourrait entraîner une économie de code significative.la source
MATL , 29 octets
Essayez-le sur MATL Online!
Explication
la source
Java 8, 246 + 42 = 288 octets
Merci à @Aaron pour -64 octets.
-4 octets en sortie dans un fichier
a
sans extension.Expression lamba pouvant être affectée à une méthode d'interface fonctionnelle générant une exception. Crée un fichier image nommé
a
(un fichier image) dans le répertoire qui exécute ce fichier.Le code environnant utilisé pour l'exécuter: essayez-le en ligne!
Ungolfed
Résultat
Grille fournie par l'aperçu de l'image IntelliJ IDEA (apparemment).
la source
fillPolygon
appel en deuxfillRect
appels. Je ne suis pas sûr d'avoir respecté les dimensions, mais je suis arrivé avecg.fillRect(7,13,18,6);g.fillRect(13,7,6,18)
ce qui est plus court de 64 octets.png
au lieu dea.png
et enregistrer un octet.a
, sans extension? Il peut toujours être ouvert, il suffit simplement de lui indiquer de l'ouvrir dans une visionneuse de photos.Excel VBA,
868579 octetsCode
Fonction de fenêtre immédiate VBE anonyme qui ne prend aucune entrée et affiche le drapeau suisse sur la plage
[A1:F32]
de l'ActiveSheet
objet. Cela fonctionne en commençant par rendre les cellules carrées, puis en traçant la région rouge et enfin en traçant la croix blanche.Notez que les arrangements qui suppriment l'étape consistant à colorer la "croix" du drapeau suisse après la mise en arrière-plan rouge sont en réalité plus longs que la configuration ci-dessus, car ils nécessitent au moins 16 adresses de cellule, qui se coordonnent vers les 8 régions distinctes de la carte. drapeau
-1 octet grâce à @ Greedo pour
RowHeight=48
plusColumnWidth=2
-6 octets grâce à @ Greedo pour la
-1
placergbWhite
Sortie
la source
Interior.Color=-1
au lieu deInterior.Color=rgbWhite
rgbWhite
sur sa valeur décimale de16777215
pour plus de clarté, je ne savais pas que-1
cela aurait le même effet. Merci!C ++, SFML,
406399394 octets-2 octets grâce à pdpi
-10 octets grâce à Zacharý
SFML (bibliothèque multimédia simple et rapide) est une bibliothèque C ++ écrite pour faciliter le développement de jeux vidéo et de programmes multimédias
Le code :
Le drapeau est affiché dans une fenêtre de 128x128. Votre système d'exploitation doit pouvoir afficher une fenêtre 128x128 (ma Win8.1 ne peut pas afficher avec une largeur inférieure)
AVERTISSEMENT : vous voudrez peut-être ajouter ces 2 lignes de code:,
t.setFramerateLimit(60);t.setVerticalSyncEnabled(true);
afin que votre CPU ne chauffe pas lorsque vous exécutez le code. Je ne les ai pas mis dans le code original pour des raisons de golf.la source
int main(){for(sf::RenderWindow t(sf::VideoMode(128,128),"");t.isOpen();){t.clear();sf::RectangleShape r({128.f,128.f});r.setFillColor(sf::Color::Red);t.draw(r);r.setFillColor(sf::Color::White);r.setPosition({24.f,52.f});r.setSize({80.f,24.f});t.draw(r);r.rotate(90);r.setPosition({76.f,24.f });t.draw(r);t.display();for(sf::Event e;t.pollEvent(e);)if(e.type == 0)t.close();}}
e.type == 0
=>e.type==0
, voire même!e.type
(ne vous souvenez pas de la priorité).24.f }
=>24.f}
using namespace sf;
possible?Braindraw, 227 octets (non concurrents) (mis à jour pour fonctionner réellement)
Version non-golfée (241 octets)
Version légèrement golfée (227 octets)
Braindraw est un langage de programmation de ma propre conception. À partir de 15h08 aujourd'hui, j'ai un interprète qui travaille et j'ai vérifié que le programme fonctionne correctement. Cependant, l'interprète n'existait pas avant le début de la compétition, je ne suis donc pas en compétition.
Braindraw est identique à Brainf ***, à la différence qu’il fonctionne sur trois tableaux bidimensionnels plutôt que sur un tableau unidimensionnel. Ces tableaux s'appellent r, g et b et servent de canaux de couleur rouge vert et bleu. L'opérateur r déplace le pointeur sur le canal rouge, etc. etc. Up is ^, down v.
la source
TI-BASIC (TI-84 Plus C (S) E uniquement), 58 octets
la source
Mathematica, 83 octets
la prochaine est de @ ASCII seulement (je pensais que c'était une blague mais ça marche!)
Mathematica, 23 octets
-10 octets de @Jonathan Frech
la source
CountryData["Switzerland","Flag"]
mais il pourrait ne pas avoir les bonnes proportions"Switzerland"~CountryData~"Flag"
vous sauve encore plus"CH"~CountryData~"Flag"
prend seulement 23 octets.HTML + CSS, 15 + 117 octets = 132 octets
Utiliser un wrapper flexbox avec un
inset
box-shadow
.HTML + CSS, 18 +
139137122 octets = 140 octetsRéponse précédente en utilisant
border
et un wrapper flexbox intermédiaire avec négatifmargin
.la source
GraphicsMagick (?), 96 octets
Vous ne savez pas comment jouer au golf avec GM (cela devrait-il être considéré comme une langue?). Aussi pas sûr de savoir comment compter les octets ici ...
Avec GM installé, tapez le code donné dans Windows cmd, vous obtiendrez une image avec le nom
1.bmp
. Vous voudrez peut-être remplacer les guillemets par des guillemets simples si vous utilisez bash (cela devrait fonctionner, mais je ne l’avais pas testé).Merci à Digital Trauma. utilisez seulement une
-draw
sauvegarde de 8 octetsla source
-draw
chaîne:convert -size 32x32 xc:red -fill white -draw "rectangle 13,6 18,25 rectangle 6,13 25,18" i.png
JavaScript + HTML, 99 + 13 = 112 octets
2 octets enregistrés grâce à user2428118
2 octets enregistrés grâce à Matheus Avellar
JSFiddle
Pure JavaScript,
194129 octetsJSFiddle
la source
<canvas>
vous pouvez inclure le code HTML directement dans votre réponse chaque fois que vous en avez besoin . Voir codegolf.stackexchange.com/a/136972/47097JavaScript (ES6) en HTML4 (?),
178176 octetsOui! Nous n'avons pas besoin
<canvas>
ni<svg>
ni même<img>
!Grâce à Justin Mariner, économisez 2 octets.
la source
Löve2D ,
139138 octetsUn octet enregistré grâce à ThePirateBay
Ungolfed
la source
Python 3 , 190 octets
Enregistrez la sortie sous
image.xpm
et ouvrez-la avec votre éditeur de texte préféré.Essayez-le en ligne!
Sortie:
la source
Perl 5 , 184 octets
Code de 176 octets + 8 pour
-Mutf8 -p
.Je ne suis pas tout à fait sûr que cela soit conforme aux besoins, il faut que les entrées vides soient fournies conformément à ce méta-post , qui ne fonctionne pas sur TIO et fournit donc une nouvelle ligne (non utilisée). La sortie est au terminal et ressemble à ceci:
Les proportions doivent être à l'échelle d'un espace de caractère constitué de deux «pixels» verticaux.
Essayez-le en ligne!
Vous pouvez prévisualiser la sortie en copiant à partir de TIO et en la collant ici (cela affiche les caractères de contrôle lorsque vous survolez l'élément) .
la source
GFA BASIC (Atari ST), 62 octets
Une liste modifiée manuellement au format .LST. Toutes les lignes se terminent par
CR
, y compris la dernière.Développé et commenté:
Sortie
La sortie est 32x32.
NB: Il s’agit bien de la couleur «blanche», bien que celle-ci ait un aspect gris sur l’émulateur (et sur la réalité, à moins que la luminosité ne soit trop élevée).
la source
R,
171140 octets.(un peu) ungolfed:
Merci à @gregor pour avoir économisé quelques octets
Exécuter!
la source
e=2
au lieu deeach=2
,t
au lieu detype
,c
pourcol
,b
pourborder
. Et0*1:4
est plus court quec(0,0,0,0)
.plot
:plot(0,0,'n',l,l,xaxs="i",yaxs="i")
(l’attributionm="i"
vous coûte réellement un octet). Avec tout cela, ça descend à 141 octets.l
et lesxlim
/ylim
ne sont pas nécessaires, justeplot(0:32,0:32,...)
. J'ai également adapté votre approche et l'ai réduite à 117 ici, en utilisantrect
au lieu depolygon
.Octave,
105 octets73 octetsRemarque: les sauts de ligne ajoutés pour plus de clarté ne sont pas inclus dans le nombre d'octets.
EDIT: merci à flawr pour avoir économisé pas mal d’octets!
Voici le résultat sur octave-online.net, grâce aux sanchises
la source
x(32,32,3)=0; x(:,:,1)=1; x(7:26,14:19,:)=1; x(14:19,7:26,:)=1; imshow(x*255)
GIF, 97 octets
Pas cher et lourd d'octets, mais ça vaut le coup.
EDIT: Certains caractères ne sont pas dans le code ci-dessus, voici une boîte à copier pour l'hexdump du GIF.
EDIT: compressé jusqu'à 97 octets avec l'outil en ligne.
la source
HTML + JavaScript (ES6), 13 + 112 = 125 octets
HTML + JavaScript (ES6), 13 + 114 = 127 octets
la source
clearRect
, j'espère que ça vous va?C #
265/266209 octetsJ'ai écrit des caractères "espace" dans la console tout en changeant la couleur de fond. Mais si vous pensez qu'il est trop grand et que vous comptez un seul caractère comme 8 x 16 pixels, vous doublez simplement les valeurs proches de "j" comme ceci (+ 1 octet et +
c.ReadKey();
pour qu'il s'arrête):56 octets sauvegardés grâce à TheLethalCoder
la source
namespace System{using static Console;class P{static void Main(){for(int i=0,j;i<32;i++,WriteLine())for(j=0;j<32;Write(" "))BackgroundColor=(ConsoleColor)((6<i&i<26&j>13&j<19)|(6<j&j++<26&i>13&i<19)?15:12);}}}
Tikz,
145143 octetsIci c'est "non-golfé"
Ici c'est ungolfé un peu plus
Cela fait 3 rectangles un grand rouge et deux plus petits blancs pour le plus.
Voici à quoi ça ressemble. Ça n'a pas vraiment l'air différent des autres.
la source
documentclass
sur github il y a quelques semaines. et il ne semble y avoir aucune exigence de fond de fenêtre. Avec cela\documentclass{g}\input tikz
devrait travailler pour sauver 5B. Vous pouvez probablement économiser davantage en travaillant dans TeX , même avec TikZR, 109 octets
Utilisé
frame
pour éviter de prédéfinir un tracé, mais la région de tracé par défaut est définie sur l'intervalle [0,1] au lieu de [0,32]. Utilise également le fait qu'ilrect
est vectorisé. La taille par défaut de la fenêtre de traçage est 7 po x 7 po. Il génère les éléments suivants:R, 125 octets
La valeur par défaut pour
png
est un carré de 480x480 pixels. La sortie est le fichier png suivant:la source
R, 112 octets
Cependant, pour garantir les proportions, nous avons besoin de 5 octets supplémentaires pour un total de 117:
Inspiré par la réponse d’ Alex Axthelm et merci à Rift d’avoir économisé quelques octets supplémentaires.
la source
bg="red"
à cebg=2
qui est la même dans la palette par défautPostscript,
301 286187 octetsMerci à l'éditeur anonyme qui a suggéré une réduction de 99 octets!
la source
Rouge , 79 octets
Code:
Résultat:
Explication:
la source
Bitmap, 160 octets
Voici un bitmap avec une profondeur de couleur de 1 bit, utilisant une définition de couleur de 24 bits. Les six derniers octets de la deuxième ligne constituent la palette et suivent le tableau de pixels. Tous les quatre octets contiennent une rangée entière de pixels.
J'ai essayé de tronquer les zéros de fin, mais les visualiseurs d'images ont besoin de suffisamment de pixels pour toute la zone de travail.
la source
Python 2,
929189 octetsSortie en ppm binaire, utilisation:
L'augmentation de la profondeur de couleur m'a permis d'utiliser l'espace pour une valeur maximale
la source
Tcl / Tk, 94
Si elle fonctionne sur le shell interactif, on peut abrégez
canvas
àcan
etgrid
àgri
Tcl / Tk, 98
Si elle fonctionne sur le shell interactif, on peut abrégez
canvas
àcan
Tcl / Tk, 101
la source