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
Respuestas:
Python 3,
190172171169167160159147143 bytesUsando PIL versión 1.1.7 que tiene un método de desuso en desuso pero no eliminado.
Crea una imagen de 25 * 18 píxeles llena de rojo y luego dibuja un rectángulo de 23 * 16 píxeles lleno de azul con un contorno blanco de un píxel. Luego compensa la imagen en (9,9) que se ajusta en los bordes, cambia su tamaño a 100 * 72 y luego la muestra en una ventana.
Marcar antes de compensar:
(redimensionado a 100 * 72)
Salida:
Animado:
Edit1: Golfed 18 bytes eliminando el recorte creando inicialmente una imagen 25 * 18.
Edit2: Golfed 1 byte usando en
#fff
lugar dewhite
.Edit3: Golfed 2 bytes aliasing importaciones.
Edit4: Golfed 2 bytes eliminando el segundo argumento del método offset.
Edit5: Golfed 7 bytes mostrando la imagen en lugar de guardar. (necesita imagemagick instalado en Unix)
Edit6: Golfed 1 byte reescribiendo las importaciones.
Edit7: Golfed 12 bytes reescribiendo las importaciones nuevamente. (gracias por @Dennis)
Edit8: Animación añadida.
Edit9: animación actualizada ya que faltaba el último fotograma.
Edit10: Golfed 4 bytes gracias a Albert Renshaw!
fuente
from PIL.ImageDraw import*
, seI
convierteImage
y seD.Draw
vuelveDraw
, ahorrando 11 bytes.Código de máquina x86 en modo real para DOS COM,
69656362 bytesEl código está destinado a ejecutarse como un ejecutable COM de DOS.
Gracias especiales
Código de máquina (en bytes hexadecimales)
Fuente de montaje
La fuente es para NASM.
fuente
_loop: jcxz _loop
. También puede cortar 2 bytes desde el final del fragmento de datos si cambia el orden de carga decx
ydi
mov bx, 320
y moví el 320 aadd di, 320
(anteriormenteadd di, bx
).jcxz _cycle
inmediatamente despuésxchg ax,cx
para que no cargue bytes más allá del final de los datos. Y hay algunos comentarios confusos en la fuente:;dx = row
.dx
no se usa en ningún lugar del código.C,
194191183 Bytes-3 agregando uno
@
en el#define A
-8 agregando
[
en#define C
Uso
Salida
válido basándose en este comentario del OP
Salida de doble tamaño, 204 bytes
fuente
Excel VBA,
254228153 bytesRealmente no pude encontrar una manera de establecer el tamaño de columna / fila en píxeles (por lo tanto, hacerlos cuadrados) debido a la forma en que Excel lo maneja, así que primero haz que sean bonitos y cuadrados.
Edición 1: RGB reemplazado con valores devueltos para colores, -26 bytes
Edición 2: Intenté agregar tantas sugerencias como pude, -75 bytes. No pude usarlo
&48e0
como color y no estoy seguro de por qué. Gracias a todosImagen:
fuente
0.2cm
. Esto se mantendrá una vez que cambie, y no es necesario que intente resolver las extrañas relaciones de aspecto de Excel :-) Por cierto, si desea algunos trucos más geniales de Excel, busque el video de Joel Spolsky "Usted apesta en Excel".MATL ,
5756524948 bytesEsto produce la siguiente figura (probada con el compilador que se ejecuta en Matlab y en Octave).
EDITAR: ¡Puedes probar experimentalmente en MATL Online! (es posible que deba volver a cargar la página si no funciona inicialmente).
Cómo funciona
fuente
CSS,
285284264 bytesGuardado 1 byte gracias a @insertusernamehere.
Ahorró 20 bytes gracias a @ user2428118, al eliminar todos los
px
s. Tenga en cuenta que esto requiere que la página se represente en modo peculiar, por lo que no funciona en fragmentos de pila.Podría copiar el enfoque de Python de envolver una imagen en un desplazamiento, pero no sería interesante.
Sin golf:
Esto usa los pseudoelementos (elementos que no están escritos en HTML)
::before
y::after
para crear las líneas en la bandera. La razón por la que funciona sin HTML es que en HTML5 los elementos<html>
y<body>
son opcionales, por lo que los navegadores los crean automáticamente si no están presentes.Más diversión:
Mostrar fragmento de código
fuente
white
con#fff
.px
todas partes.<!doctype html>
!Bash + Imagemagick 7,
94908685 bytesmagick -size 84x56 xc:#0048e0 ${s=-splice 8x8}+28+28 -background \#d72828 $s+32+32 x:
Guardado 8 bytes, gracias a @manatwork, y 1 byte, gracias a @ GlennRanders-Pehrson
fuente
x:
lugar del nombre del archivo de salida,convert
mostrará el resultado en una ventana, que también es aceptable. Y es suficiente con sólo escapar de la fuerte, sin necesidad de citar:\#d72828
.bash
el lado usted puede ahorrar otros 4 personajes:convert -size 84x56 xc:#0048e0 ${s=-splice 8x8}+28+28 -background \#d72828 $s+32+32 x:
.${s=-splice 8x8}+56
?+56
es tratado como+56+0
, no+28+28
.BASIC del ZX Spectrum,
21014192 bytesTamaño determinado como el tamaño del programa BASIC en cinta vía
SAVE
. Gran parte del crédito de golf para algunos miembros del grupo ZX Spectrum en Facebook , en particular @impomatic y Johan Koelman.fuente
PAPER
yBRIGHT
trae tantos buenos recuerdos :-)FOR
,NOT
etc. , tomar solo 1 o tal vez 2 bytes cada unoFOR
es precisamente un byte. Sin embargo, los números son "anti-tokenizados" en el sentido de que se almacenan como texto y formas binarias y ocupan 5 bytes más de lo que cabría esperar, por lo tanto, enNOT PI
lugar de cero y similares.Conjunto ZX Spectrum Z80, 65 bytes
fuente
Minecraft 1.10.2, 734 caracteres
Puede que sean 734 caracteres, ¡pero hasta ahora es la única presentación hecha de lana real!
Vaya a aproximadamente -5x -5z, péguelo en un bloque de comando Impulse, configúrelo en "Siempre activo" y presione Listo.
La bandera abarca de 0, 0 a 100, 72; y está a 3 bloques por encima del bloque de comando como se coloca Se proyecta una sombra bastante grande , y los monstruos aparecen debajo de ella. Sin embargo, si esto es exacto para el país de Islandia, nadie lo sabe.
Advertencia justa: matará a todos los
MinecartCommandBlock
s del mundo para salvar a cuatro personajes. No ejecutes esto en un mundo al que estés demasiado apegado.Se utiliza combinador de comandos de MrGarretto y ajustado la salida un poco (808 -> 734)
fuente
Logotipo,
216188 bytesUsando la implementación de Calormen.com . Para ustedes, los puristas, la implementación utiliza un poco de suavizado que distorsiona un poco los bordes. Sin embargo, desperdicié 3 bytes escondiendo la tortuga, así que eso debería compensarlo.
Esto podría reducirse enormemente si la implementación de su logotipo le permite establecer el tamaño de la ventana. Entonces podrías
wrap
y hacer que la tortuga se extienda para hacer la cruz en cuatro trazos, y evita tener que recortarla con un borde.fuente
Java 8,
449447 bytes:Una respuesta muy tardía, y también la más larga aquí, aparentemente. Utiliza la
java.awt.Graphics
clase para crear y abrir una ventana con la bandera, creada por 5 rectángulos totales que consisten en 1 para los bloques azules, 2 para las rayas blancas y 2 para las rayas rojas. Utiliza 7 píxeles: relación de 1 unidad. En otras palabras, para cada unidad, se utilizan 7 píxeles. Aquí hay una imagen de la salida en un Macintosh con OS X 10.11:Ahora para encontrar una manera de jugar golf un poco más ...
fuente
paint
lugar depaintComponent
. Considere usar una clase anónima para JPanel. Considere simplemente usar una BufferedImage y enviarla a un archivo.Blue
como 1 gran rectángulo para el fondo. Me confundí entre esta y otra versión que hice en Python. De todos modos, gracias por los otros consejos! :)JPanel
, simplemente anule elJFrame
. Si usted hace esto y simplemente anularpaint
, no es necesario Swing, simplemente AWT, por lo que cambia laJFrame
aFrame
y eliminar la importación. No llamesuper.paint
. Reorganizar el método principal; mover elsetSize
en elpaint
método de nuestraFrame
, eliminar la variableJ
, y añadir.setVisible(true)
al final de la clase anónima. Finalmente, cambie.setVisible(true)
a sershow()
, sí, es un método obsoleto, pero es más corto. Use uninterface
para eliminar elpublic
del método principal.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)
(también el tamaño seguía siendo incorrecto). Ahora a las 317:import java.awt.*;interface A{static void main(String[]a){new Frame(){public void paint(Graphics G){setSize(175,126);setBackground(new Color(0,72,224));G.setColor(Color.WHITE);G.fillRect(49,0,28,126);G.fillRect(0,49,175,28);G.setColor(new Color(215,40,40));G.fillRect(56,0,14,126);G.fillRect(0,56,175,14);}}.show();}}
R,
197195187 bytesSangrado, con nuevas líneas y explicaciones:
Editar : resulta que
frame()
, al contrarioplot()
oplot.new()
por defecto, no agrega un borde a la trama, lo que significa quebty="n"
aquí no era necesario.fuente
Atari ejecutable de 8 bits, 123 bytes
Otra entrada "solo por diversión", este programa está diseñado para ejecutarse en una computadora o emulador Atari de 8 bits. Por ejemplo, para cargar el programa en Atari800, simplemente ejecute:
Código de máquina (en bytes hexadecimales)
Código fuente del ensamblador (se puede compilar con MADS ):
Cómo funciona:
El programa utiliza una lista de visualización personalizada que se basa en el modo ANTIC 8 (40 píxeles por línea, 2 bpp). Las líneas repetidas se cargan desde la misma ubicación de memoria. Después de configurar la pantalla, el programa entra en un bucle infinito.
Captura de pantalla:
fuente
FFmpeg,
339184 bytesIntentaremos jugar golf más abajo ... más lejos.
fuente
Pitón,
119118114112 bytesNada especial, directo:
Salida como PPM binario, uso
print
y las comillas\0
se puede usar en lugar de\x00
Si alguien sabe cómo usar el carácter ASCII no imprimible directamente, infórmelo.
fuente
b,w,r="\0Hà"*28,"ÿ"*12,"×(("*8
usar Python 3, pero no funciona.JavaScript, 267 bytes
fuente
Java, 335 bytes
La función es
Y escribe la imagen deseada como
f.png
, con un tamaño de 100x72(Tenga en cuenta que esto no es un competidor directo de la Respuesta de R. Kap , porque escribe un archivo y no muestra la imagen en la pantalla)
Aquí está la versión sin golf que se puede compilar y ejecutar:
Una nota al margen, con respecto a las preguntas relacionadas: Tal vez uno debería crear un desafío para pintar las banderas de
al mismo tiempo:
fuente
SVG + Javascript,
190165164 bytesNo hay ningún experto allí, ¡
repetir una ruta solo para cambiar el color y el ancho de línea se ve tontojavascript ftw!Más legible:
fuente
path d="m0,0h100v72H0"
lugar del rectángulo para guardar dos bytes. Del mismo modo, utilíceloM0 36H100M36 0V72
para los datos de la otra ruta, lo que ahorra otros cinco bytes. Y puede descartar elstyle
atributo a favor de declarar ambosstroke-width
ystroke
como atributos para guardar otros cinco bytes.Procesando , 136 bytes
Sin golf
Salida:
fuente
fill
y enrect
lugar desize
ybackground
. 134 bytes:noStroke();fill(#0048e0);rect(0,0,100,72);fill(255);rect(0,28,100,16);rect(28,0,16,72);fill(#d72828);rect(0,32,100,8);rect(32,0,8,72);
fill(-1)
es un byte más corto quefill(255)
Mathematica
174157bytesSin construcciones:
157 bytes
o alternativamente
232 bytes
fuente
u=Unitize;c=ConstantArray
etc ^ _ ^CountryData["Iceland", "Flag"]
JavaScript (ES6), 231
240Código dentro del fragmento a continuación. Ejecútalo para probar.
fuente
Ensamblaje ZX Spectrum Z80, 51 bytes
https://github.com/ralphbecket/Z80/blob/master/IcelandFlag/IcelandFlag.asm
fuente
J,
868483 bytesEl enfoque es el mismo que el de @ Gábor Fekete con Python.
El argumento izquierdo
colors
paraviewmat
es una matriz de valores RGB, en nuestro caso:Y el argumento correcto es una matriz de índices de
colors
.(_9 _9 |. matrix)
ordena cambiarmatrix
9 elementos en cada dimensión.Construcción
(border ([,~[,.~[,[,.]) matrix)
aterradora envuelvematrix
con númeroborder
.Y
(14 21 $ 1)
hace 14 × 21 matriz de unos.La salida se muestra en una ventana de tamaño variable separada, bastante grande por defecto.
Gracias
millas: ahorró 2 bytes al reordenar los colores, usó la función de
,
que duplica los números (255) para el acuerdo de forma.fuente
14 21
(18 25 - 4 4
). corrigiendo ... gracias!(255,0 72 224,:215 40 40)viewmat _9 _9|.2(b=.[,~[,.~[,[,.])0 b 14 21$1
TI-BASIC (no competidor), 323 bytes
El código está escrito para la TI-84, 83 y sus variantes. Espero que no sea un problema que las dimensiones varíen según el dispositivo y que el código no esté coloreado.
Preparar:
Dibujo:
Golfizado:
Si, la falta de
)
es intencional.Talla:
Line(
y todos los comandos como ese ocupan 1 byte, cada número toma un byte. Eso es 323 bytes.Eso fue absolutamente tedioso. Espero obtener esto en un emulador (tengo que ingresar todo manualmente) pero literalmente son solo líneas en la forma de la bandera.
fuente
Line(
es 0x9C. Puede ver una tabla de tokens de un byte aquí: tibasicdev.wikidot.com/one-byte-tokens<
y>
) en lugar de líneas para obtener sombreado en escala de grises?C#,
384346317292291289 bytesSolución simple con Windows Forms y GDI
Uso
Inicie un nuevo proyecto de consola y coloque el código anterior en el método principal, agregue System.Drawing-Namespace.
Cómo funciona
El código crea una nueva imagen y dibuja algunas líneas sobre ella. Guarda la imagen en el disco. Algunos de los puntos finales de las líneas están fuera del área visible.
fuente
b = new
=>b=new
,using ()
=>using()
, no use espacios después de;
s. Si lo desea, puede leer nuestros Consejos para jugar golf en C # para encontrar algunos consejos.Process.Start(f);
? Según tengo entendido, eso es similar acmd
start
. Como puede elegir guardar o mostrar la imagen y ya la guardó, ese paso parece inútil. En cuyo caso, tal vez pueda evitar declarar la variable f también.using
, así como para una declaración de método o repetitivo de programa. Todo esto es parte de lo que se necesita (la tarea le da la opción de elegir una función o un programa, pero no la opción de solo un conjunto de declaraciones).Python IDLE,
191172156 bytesIDLE es el IDE estándar de Python. A menos que tenga un tema personalizado,
STDOUT
es azul,STDERR
es rojo y el fondo es blanco. Entonces, el siguiente código:Produce esta salida:
Como los caracteres impresos no son cuadrados, esto está ligeramente apagado, pero si consideramos que 1 unidad tiene 2 caracteres de ancho y 1 carácter de alto, entonces las proporciones son exactas.
Esto se puede jugar al golf, reduciendo a la mitad la dimensión del ancho y utilizando un carácter ASCII para los bloques, por ejemplo
'#'
, pero no tiene exactamente el mismo efecto.Explicación
El código en sí parece bastante descuidado en este momento, y definitivamente se puede jugar, pero la idea básica es:
0
represente el espacio en blanco,1
represente un bloque azul y2
represente un bloque rojo.STDERR
/ enSTDOUT
consecuencia. Imprima una nueva línea después de cada fila.fuente
Tortuga Python, 176 bytes
Otra implementación de Python Turtle pero esta vez basada en estampar en lugar de dibujar :
El uso de estampado, y no hacerlo fácilmente escalable, ahorra unos 60 bytes de código.
La parte divertida es que puede reemplazar la
"square"
opción de polígono con la"turtle"
opción de polígono en lashape()
llamada y obtener un logotipo ecogroovy:fuente
Perl, 134 bytes
Nota: en
\x1b
realidad es el carácter de escape ASCII y cuenta como 1 byteUso
Guardar como
iceland-flag.pl
y ejecutar a través de:Utiliza secuencias de escape ANSI y asume un terminal de Linux para mostrar la bandera. Parece un poco extraño usando las medidas proporcionadas.
Perl, 141 bytes
Esta versión se ve un poco más cerca de las dimensiones genuinas ...
fuente
SpecaBAS - 150 bytes
Lee el color de la tinta, x, y, ancho y alto y dibuja un rectángulo con esas coordenadas / dimensiones.
fuente
:
? Ah, y son 151 bytes.