var QUESTION_ID = 85141; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 41859; // This should be the user ID of the challenge author.
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;function answersUrl(index) {return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;}function commentUrl(index, answers) {return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;}function getAnswers() {jQuery.ajax({url: answersUrl(answer_page++),method: "get",dataType: "jsonp",crossDomain: true,success: function (data) {answers.push.apply(answers, data.items);answers_hash = [];answer_ids = [];data.items.forEach(function(a) {a.comments = [];var id = +a.share_link.match(/\d+/);answer_ids.push(id);answers_hash[id] = a;});if (!data.has_more) more_answers = false;comment_page = 1;getComments();}});}function getComments() {jQuery.ajax({url: commentUrl(comment_page++, answer_ids),method: "get",dataType: "jsonp",crossDomain: true,success: function (data) {data.items.forEach(function(c) {if (c.owner.user_id === OVERRIDE_USER)answers_hash[c.post_id].comments.push(c);});if (data.has_more) getComments();else if (more_answers) getAnswers();else process();}});}getAnswers();var SCORE_REG = /<h\d>\s*([^\n,]*[^\s,]),.*?(-?\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;var OVERRIDE_REG = /^Override\s*header:\s*/i;function getAuthorName(a) {return a.owner.display_name;}function process() {var valid = [];answers.forEach(function(a) {var body = a.body;a.comments.forEach(function(c) {if(OVERRIDE_REG.test(c.body))body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';});var match = body.match(SCORE_REG);if (match)valid.push({user: getAuthorName(a),size: +match[2],language: match[1],link: a.share_link,});});valid.sort(function (a, b) {var aB = a.size,bB = b.size;return aB - bB});var languages = {};var place = 1;var lastSize = null;var lastPlace = 1;valid.forEach(function (a) {if (a.size != lastSize)lastPlace = place;lastSize = a.size;++place;var answer = jQuery("#answer-template").html();answer = answer.replace("{{PLACE}}", lastPlace + ".").replace("{{NAME}}", a.user).replace("{{LANGUAGE}}", a.language).replace("{{SIZE}}", a.size).replace("{{LINK}}", a.link);answer = jQuery(answer);jQuery("#answers").append(answer);var lang = a.language;if (! /<a/.test(lang)) lang = '<i>' + lang + '</i>';lang = jQuery(lang).text().toLowerCase();languages[lang] = languages[lang] || {lang: a.language, user: a.user, size: a.size, link: a.link, uniq: lang};});var langs = [];for (var lang in languages)if (languages.hasOwnProperty(lang))langs.push(languages[lang]);langs.sort(function (a, b) {if (a.uniq > b.uniq) return 1;if (a.uniq < b.uniq) return -1;return 0;});for (var i = 0; i < langs.length; ++i){var language = jQuery("#language-template").html();var lang = langs[i];language = language.replace("{{LANGUAGE}}", lang.lang).replace("{{NAME}}", lang.user).replace("{{SIZE}}", lang.size).replace("{{LINK}}", lang.link);language = jQuery(language);jQuery("#languages").append(language);}}
body { text-align: left !important}#answer-list {padding: 10px;width: 290px;float: left;}#language-list {padding: 10px;width: 290px;float: left;}table thead {font-weight: bold;}table td {padding: 5px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/Sites/codegolf/all.css?v=617d0685f6f3"><div id="answer-list"><h2>Leaderboard</h2><table class="answer-list"><thead><tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead><tbody id="answers"></tbody></table></div><div id="language-list"><h2>Winners by Language</h2><table class="language-list"><thead><tr><td>Language</td><td>User</td><td>Score</td></tr></thead><tbody id="languages"></tbody></table></div><table style="display: none"><tbody id="answer-template"><tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody></table><table style="display: none"><tbody id="language-template"><tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody></table>
#0048e0
Réponses:
Python 3,
190172171169 169167160159147143 octetsUtilisation de PIL version 1.1.7 qui utilise une méthode de décalage obsolète mais non supprimée.
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:
(redimensionné à 100 * 72)
Sortie:
Animé:
Edit1: Golfé 18 octets en supprimant le recadrage en créant initialement une image 25 * 18.
Edit2: Golfé 1 octet en utilisant à la
#fff
place dewhite
.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!
la source
from PIL.ImageDraw import*
,I
devientImage
etD.Draw
devientDraw
, en sauvegardant 11 octets.Code machine en mode réel x86 pour DOS COM,
69656362 octetsLe code est destiné à être exécuté en tant qu'exécutable COM COM.
Remerciement spécial
Code machine (en octets hexadécimaux)
Source d'assemblage
La source est pour NASM.
la source
_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 decx
etdi
mov bx, 320
et déplacé le 320 dansadd di, 320
(précédemmentadd di, bx
).jcxz _cycle
juste aprèsxchg ax,cx
pour 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
.dx
n'est utilisé nulle part dans le code.C,
194191183 octets-3 ajoutant une
@
sur l'#define A
-8 ajoutant
[
le#define C
Usage
Sortie
valide en se basant sur ce commentaire du PO
Double taille de sortie, 204 octets
la source
Excel VBA,
254228153 octetsImpossible 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
&48e0
comme couleur et je ne sais pas pourquoi. Merci tout le mondeImage:
la source
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.MATL ,
5756524948 octetsCeci produit la figure suivante (testé avec le compilateur fonctionnant sur Matlab et Octave).
EDIT: Vous pouvez expérimenter sur MATL Online! (vous devrez peut-être recharger la page si cela ne fonctionne pas initialement).
Comment ça fonctionne
la source
CSS,
285284264 octetsSauvegardé 1 octet grâce à @insertusernamehere.
Sauvegardé 20 octets grâce à @ user2428118, en supprimant tous les
px
s. 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:
Ceci utilise les pseudo-éléments (éléments qui ne sont pas écrits en HTML)
::before
et permet::after
de 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:
Afficher l'extrait de code
la source
white
par#fff
.px
partout.<!doctype html>
!Bash + Imagemagick 7,
94908685 octetsmagick -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
la source
x:
place du nom du fichier de sortie,convert
le 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
.bash
cô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:
.${s=-splice 8x8}+56
?+56
est traité comme+56+0
, non+28+28
.ZX Spectrum BASIC,
21014192 octetsTaille 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.la source
PAPER
et enBRIGHT
apportant tant de bons souvenirs :-)FOR
,NOT
etc pour prendre seulement 1 ou peut - être 2 octets chacunFOR
c'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, doncNOT PI
au lieu de zéro ou autre.Assemblage ZX Spectrum Z80, 65 octets
la source
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!
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
MinecartCommandBlock
s dans le monde dans l’intérêt de sauver quatre personnages. Ne courez pas cela dans un monde auquel vous êtes trop attaché.Utilisé commande de MrGarretto de combinateur et peaufiné la sortie un peu (808 -> 734)
la source
Logo,
216188 octetsUtilisation 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
wrap
faire passer la tortue en croix pour faire la croix en quatre coups et éviter de la couper avec une bordure.la source
Java 8,
449447 octets:Une réponse très tardive, et aussi la plus longue ici, apparemment. Utilise la
java.awt.Graphics
classe 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:Maintenant, pour trouver un moyen de jouer au golf un peu plus ...
la source
paint
remplacer au lieu depaintComponent
. Pensez à utiliser une classe anonyme pour JPanel. Pensez simplement à utiliser BufferedImage et à exporter dans un fichier.Blue
1 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! :)JPanel
, remplacez simplement leJFrame
. Si vous faites cela et remplacez simplementpaint
, vous n'avez pas besoin de Swing, mais simplement d'AWT. Changez doncJFrame
enFrame
et supprimez l'importation. N'appelle passuper.paint
. Réorganiser la méthode principale; déplacez lesetSize
dans lapaint
méthode de notreFrame
, supprimez la variableJ
et ajoutez-le.setVisible(true)
à la fin de la classe anonyme. Enfin, changez.setVisible(true)
pour êtreshow()
oui, c’est une méthode obsolète, mais elle est plus courte. Utilisez uninterface
pour supprimer lepublic
de la méthode principale.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();}}
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();}}
R,
197195187 octetsIndenté, avec nouvelles lignes et explications:
Éditer : s'avère
frame()
, contrairementplot()
ouplot.new()
non par défaut, ajouter une bordure au tracé, ce qui signifie que cebty="n"
n'était pas nécessaire ici.la source
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:
Code machine (en octets hexadécimaux)
Code source de l'assembleur (peut être compilé avec MADS ):
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:
la source
FFmpeg,
339184 octetsJe vais essayer de jouer au golf .. plus loin.
la source
Python,
119118114112 octetsRien de spécial, simple:
Sortie en PPM binaire, utilisation
print
et le guillemet\0
peut être utilisé à la place de\x00
Si quelqu'un sait comment utiliser directement le caractère ASCII non imprimable, veuillez le faire savoir.
la source
b,w,r="\0Hà"*28,"ÿ"*12,"×(("*8
utiliser Python 3, mais cela ne fonctionne pas.JavaScript, 267 octets
la source
Java, 335 octets
La fonction est
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:
Une note de côté, concernant les questions connexes: Peut-être faudrait-il créer un défi pour peindre les drapeaux de
en même temps:
la source
SVG + Javascript,
190165164 octetsAucun expert,
répétant un seul chemin juste pour changer la couleur et la largeur de la ligne a l'air stupidejavascript ftw!Plus lisible:
la source
path d="m0,0h100v72H0"
place du rectangle pour enregistrer deux octets. De même, utilisezM0 36H100M36 0V72
cette option pour les données de l'autre chemin, ce qui enregistre cinq octets supplémentaires. Et vous pouvez abandonner l'style
attribut au lieu de déclarer les deuxstroke-width
et enstroke
tant qu'attributs pour enregistrer cinq octets supplémentaires.Traitement , 136 octets
Ungolfed
Sortie:
la source
fill
etrect
au lieu desize
etbackground
. 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);
fill(-1)
est un octet plus courte quefill(255)
Mathematica
174157 octetsSans construit:
157 octets
Ou bien
232 octets
la source
u=Unitize;c=ConstantArray
etc ^ _ ^CountryData["Iceland", "Flag"]
JavaScript (ES6), 231
240Code à l'intérieur de l'extrait ci-dessous. Exécutez-le pour tester.
la source
Assemblage ZX Spectrum Z80, 51 octets
https://github.com/ralphbecket/Z80/blob/master/IcelandFlag/IcelandFlag.asm
la source
J,
868483 octetsL'approche est la même que celle de @ Gábor Fekete avec Python.
L'argument de gauche
colors
pourviewmat
est un tableau de valeurs RVB, dans notre cas:Et le bon argument est une matrice d’indices de
colors
.(_9 _9 |. matrix)
indique de déplacermatrix
9 éléments dans chaque dimension.La construction effrayante
(border ([,~[,.~[,[,.]) matrix)
enveloppematrix
avec le nombreborder
.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.
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.la source
14 21
(18 25 - 4 4
). corriger ... merci!(255,0 72 224,:215 40 40)viewmat _9 _9|.2(b=.[,~[,.~[,[,.])0 b 14 21$1
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:
Dessin:
Golfé:
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.
la source
Line(
est 0x9C. Vous pouvez voir un tableau de jetons sur un octet ici: tibasicdev.wikidot.com/one-byte-tokens<
et>
) à la place de lignes pour obtenir des nuances de gris?C #
384346317292291289 octetsSolution simple avec Windows Forms et GDI
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.
la source
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.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.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).Python IDLE,
191172156 octetsIDLE est l'IDE standard de Python. Sauf si elle a un thème personnalisé, elle
STDOUT
est bleue,STDERR
rouge et l’arrière-plan est blanc. Donc, le code suivant:Produit cette sortie:
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:
0
représente un espace,1
un bloc bleu et2
un bloc rouge.STDERR
/ enSTDOUT
conséquence. Imprimer une nouvelle ligne après chaque ligne.la source
Tortue Python, 176 octets
Une autre implémentation de tortue Python mais cette fois-ci basée sur l' estampage au lieu de dessiner :
L'utilisation de l'estampillage, et non le rendre facilement évolutif, économise environ 60 octets de code.
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:la source
Perl, 134 octets
Remarque:
\x1b
correspond au caractère d'échappement ASCII et compte pour 1 octet.Usage
Enregistrer sous
iceland-flag.pl
et exécuter via: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 ...
la source
SpecaBAS - 150 octets
Lit la couleur de l'encre, x, y, la largeur et la hauteur et dessine un rectangle avec ces coordonnées / dimensions.
la source
:
? Oh, et c'est 151 octets.