Feliz aniversário, Finlândia!

37

Introdução

Como se sabe, em 2017, a Finlândia comemora seus 100 anos de independência. Para marcar a ocasião, é seu trabalho produzir uma bandeira finlandesa para o prazer de todos.

Desafio

Crie um programa ou uma função que produz a bandeira da Finlândia (a borda cinza existe apenas para fins de apresentação):

Flag of Finland

Especificações da bandeira

  • A proporção da bandeira é 18:11, com a cruz sendo 3unidades grossas, fornecendo um conjunto de proporções horizontal 5:3:10e um conjunto de proporções verticais 4:3:4.
  • A imagem deve ter pelo menos 180 x 110pixels de tamanho ou, no caso de arte ASCII, 90 x 55caracteres.
  • Não há cor RGB oficial para o azul, mas use a aproximação mais próxima de (0, 53, 128). Se o seu sistema não suportar valores RGB, use blue.
  • Para a cor branca, use RGB (255, 255, 255)ou white.

Não tão rápido

Como desenhar a bandeira nacional finlandesa seria mais simples do que o desafio islandês do ano passado , teremos que aumentar um pouco a dificuldade. Como o Dia da Independência da Finlândia é em 6 de dezembro, o número decimal 100deve aparecer em algum lugar na bandeira quando a data na Finlândia ( UTC + 02: 00 ) for 2017-12-06posterior ou posterior (seu código não deve assumir que a máquina em que está sendo executada está definida como fuso horário específico). Antes da data, o número não deve estar lá. O número deve ser impresso em preto (RGB (0, 0, 0)ou black), mas seus parâmetros de posicionamento e fonte são com você.

Um exemplo dessa renderização (novamente, ignore a borda):

Bandeira da Finlândia com 100 nele

Para fins de teste, seria bom incluir duas versões adicionais da sua solução, uma com data fixa no passado e outra no futuro.

Regras

As brechas padrão são proibidas, assim como as imagens / bibliotecas de bandeira incorporadas. Além disso, seu código não deve receber nenhuma entrada.

Os finlandeses não gostam de conversa fiada, e isso é , então não desperdice caracteres!

Antti29
fonte
Devemos apenas usar o espaço e, # no caso da arte ASCII ? E então insira os caracteres em 100algum lugar?
Adám 4/17/17
11
Podemos considerar a data na Finlândia como entrada para sistemas que não possuem um relógio de parede interno ou que não implementam o fuso horário? Ocasionalmente, estou postando respostas no assembly GFA-Basic (Atari ST, sem fuso horário) ou CP-1610 (Intellivision, sem data / hora) e temos respostas em algumas outras plataformas antigas, que geralmente são muito bom em desenhar coisas assim, mas parece ser desqualificado aqui por causa da edição da data.
Arnauld
11
@ Arnauld: Puxa, eu nunca pensei que alguém usaria esses sistemas. Agradeço sua situação, mas isso deixaria os outros em desvantagem? Eu acho que permitir a entrada deixaria você apenas com uma simples comparação de números inteiros. Uma entrada não concorrente sem o aspecto do tempo estaria fora de questão?
precisa saber é o seguinte
11
@ Antti29 Honestamente, não consigo pensar em nenhuma boa solução e é tarde demais para fazer qualquer atualização importante das regras. A menos que alguém venha com uma sugestão realmente satisfatória, acho que esses sistemas simplesmente não podem competir aqui. (Eu vi o desafio na caixa de areia e não pensar que o meu mau..)
Arnauld
9
A outra bandeira finlandesa é permitida?
23630 Justin Bardard

Respostas:

24

C (Windows), 361 bytes

#import<time.h>
#import<windows.h>
C(x){SetConsoleTextAttribute(GetStdHandle(-11),x);}F(I,N,l,a,n,d)time_t n;struct tm*d;{system("mode 90,65");time(&n);d=gmtime(&n);n=d->tm_year<<24|d->tm_mon<<16|d->tm_mday<<8|d->tm_hour;for(a=l=I=15;I++<70;a=l=I<35|I>49?15:9)for(N=n>1963656468&I<17?C(240),printf("100"):0;N++<90;a=N-25?a:9,a=N-40||l==9?a:15)C(a),putchar(70);}

Desenrolado:

#import <time.h>
#import <windows.h>

C(x)
{
    SetConsoleTextAttribute(GetStdHandle(-11),x);
}

F(I,N,l,a,n,d) time_t n;struct tm*d;
{
    system("mode 90,65");

    time(&n);
    d = gmtime(&n);
    n = d->tm_year<<24 | d->tm_mon<<16 | d->tm_mday<<8 | d->tm_hour;

    for(a=l=I=15; I++<70; a=l=I<35|I>49?15:9)
        for(N=n>1963656468&I<17?C(240),printf("100"):0; N++<90; a=N-25?a:9,a=N-40||l==9?a:15)
            C(a), putchar(70);
}

Saída:

Saída quando UTC time >= 2017-12-05-22-00:

Adicione o seguinte no código depois d=gmtime(&n);para experimentá-lo:

d->tm_year = 117;
d->tm_mon = 11;
d->tm_mday = 5;
d->tm_hour = 21;
Steadybox
fonte
13
Nomes de variáveis ​​fofos!
Adám
16

PHP + SVG (HTML 5), 147 137 123 bytes

Código SVG por Neil

https://codegolf.stackexchange.com/a/149850/66061

<svg><path d=180v110 fill=#fff></path><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580></path><?=time()<1512511200?:'<text x=9 y=15>100';

Atualização: Obrigado a Shaggy por me ajudar a economizar 10 bytes.

<svg><path d=180v110 fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 /><?=time()<1512511200?:'<text x=9 y=15>100';

Atualização 2: Idéia inteligente de Ismael Miguel , obrigado por salvar 14 bytes

<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 /><?=time()<1512511200?:'<text y=19>100';

Normal

normal

Após 6 de dezembro +2 horas

após 6 de dezembro - +2 horas

th3pirat3
fonte
Então time()dá UTC?
Adám 4/17/17
Quando é 1512525600?
Adám 04/12/19
1512525600é 2017-12-06T02:00:00+00:00 in ISO 8601@ Adám e sim, time () é independente do fuso horário.
precisa saber é o seguinte
12

Röda , 252 250 bytes

{s={|w,h|[` width="$w" height="$h" `]}r=`><rect`f=`" fill="#003580"/`
[`<svg`,s(18,11),r,s(18,11),`fill="#fff"/`,r,s(18,3),`y="4$f`,r,s(3,11),`x="5$f>`]
[`<text y="9" font-size="2">100</text>`]if{}|[[exec("date","+%s")]&"">="1512511200
"]
[`</svg>`]}

Experimente online!

fergusq
fonte
25
A audácia! Você resolveu um desafio finlandês com um idioma nomeado sueco.
precisa saber é o seguinte
11
@ Arthur É nomeado após a palavra sueca, não existe tal palavra em finlandês. O git contém finlandês porque eu falo finlandês.
Fergusq 04/04/19
11
@Arthur: Eu tenho medo que você vai precisar para aprofundar a mentalidade finlandesa para apreciar plenamente o meu comentário :)
Antti29
11
@fergusq Bem, se é do homem que realmente nomeou o idioma, acho que não há autoridade superior. No entanto, mesmo sabendo que "röda" não é uma palavra finlandesa, sustento que meu comentário anterior era plausível. Os nomes de idiomas não precisam ser palavras reais. Além disso, embora eu não esteja por dentro, estou bem ciente do antagonismo que os finlandeses têm contra os suecos, com a história da ocupação, e o sueco ser obrigatório nas escolas como um dos vários lembretes constantes.
Arthur
11
@ PaŭloEbermann: Infelizmente.
precisa saber é o seguinte
11

C #, 407 400 277 bytes

Estranho como ForegroundColor =0é permitido

Guardado 1 byte graças a TuukkaX

Guardado 67 bytes graças a Adam

()=>{for(int x=0,y;x<90;x++)for(y=0;y<55;y++){BackgroundColor=(ConsoleColor)15;if(x>24&x<41|(y>19&&y<36))BackgroundColor=(ConsoleColor)9;SetCursorPosition(x,y);Write(' ');}if(new DateTime(2017,12,5,22,0,0)<DateTime.UtcNow){SetCursorPosition(1,1);ForegroundColor=0;Write(100);}}

ungolfed para teste:

using System;
using static System.Console;
class P
{
    static void Main()
    {
        Action func = () =>
        {
            for (int x = 0,y; x < 90; x++) for (y=0; y < 55; y++)
                {
                    BackgroundColor = (ConsoleColor)15;
                    if (x > 24 & x < 41 | (y > 19 && y < 36))
                        BackgroundColor = (ConsoleColor)9;
                    SetCursorPosition(x, y);
                    Write(' ');
                }

            if (new DateTime(2017, 12, 5, 22, 0, 0) < DateTime.UtcNow)
            {
                SetCursorPosition(1, 1); ForegroundColor =0; Write(100);
            }
        };
        func();
        ReadLine();
    }
}

para testar 100:

using System;
using static System.Console;
class P
{
    static void Main()
    {
        Action func = () =>
        {
            for (int x = 0,y; x < 90; x++) for (y=0; y < 55; y++)
                {
                    BackgroundColor = (ConsoleColor)15;
                    if (x > 24 & x < 41 | (y > 19 && y < 36))
                        BackgroundColor = (ConsoleColor)9;
                    SetCursorPosition(x, y);
                    Write(' ');
                }

            if (new DateTime(2017, 12, 2, 22, 0, 0) < DateTime.UtcNow)
            {
                SetCursorPosition(1, 1); ForegroundColor =0; Write(100);
            }
        };
        func();
        ReadLine();
    }
}
LiefdeWen
fonte
3
ForegroundColor = 0é permitido porque o literal 0é conversível em qualquer tipo de enum, conforme escrito na especificação C # .
Joey
9

Mathematica, 129 bytes

If[AbsoluteTime@Date[]<3721507200,s="",s=100];Graphics@{s~Text~{9,9},RGBColor[0,.2,.5],{0,4}~(R=Rectangle)~{18,7},{5,0}~R~{8,11}}


antes .. depois ..
insira a descrição da imagem aqui

insira a descrição da imagem aqui
você sempre pode testá-lo na Wolfram Sandbox
(cole o código e pressione Shift-Enter)

J42161217
fonte
Quando é 3721507200?
Adám
@ Adám AbsolutimeTime fornece o número total de segundos desde o início de 1 de janeiro de 1900
J42161217
@Jenny_mathy 1 de janeiro de 1900 de que fuso horário?
Daffy
@Daffy of utc
02
9

Python 2 , 247 246 230 210 189 bytes

import time
print'P3',180,110,255
w,b='255 '*3,'0 52 128 ';B=['0 '*3,w][time.gmtime()<(2017,12,5,22)]
a=w*40+b*30+w*100
x=w*10+a;y,z=w+B+w+B*3+w+B*3+a,(w+B)*5+a
print y+z+y+x*37+b*5400+x*40

Experimente online!

Imprime uma imagem .ppm:

Sinalizador normal

Finlândia

Bandeira com 100

Finlândia100

TFeld
fonte
Pode datetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)ser substituído por datetime.utcnow()>=datetime(2017,12,05,22,0,0)algo semelhante?
Adám 04/12/19
Use em time.gmtimevez disso para comparações de tuplas (veja minha resposta)!
Antti Haapala
[time.time ()> 1512514800]
dieter
7

Python 3, 143 141 135 bytes

Usa escape ANSI para cores, usa cinco espaços ou "100" como uma seqüência de caracteres colorida para que eu não precise imprimir especialmente "100" em algum lugar da bandeira. Comprimento 5 por causa da largura, porque 90/5 == 90//5. A string usada está sendo definida na linha 1. Em seguida, iteramos 55 redondos (altura), em cada iteração vé configurada para string com a cor [Blue, BrightWhite] e o índice selecionado é booleano row<20 or r>34. Multiplicamos esse resultado por 5 novamente (dimensões da largura: 25:15:50 para que a largura total seja 90). Em seguida, imprimimos v + Blue + Blue + Blue + v + v + Blackonde vé Blue ou BrightWhite. Para esclarecer a impressão: largura de vé 25 caracteres, largura de Azul ( e%44*3) é 15 e largura de é 90, que é a largura e segue as dimensões exigidas na tarefa! Resumo bastante confuso, mas acho que é melhor que nada. v*2 é 50.25+15+50

import time;e="\033[30;%dm "+[" "*4,"100 "][time.time()>1512511200]
for r in range(55):v=e%[107,44][19<r<35]*5;print(v+e%44*3+v*2+e%40)
Erro fatal
fonte
2
Bem vindo ao site!
caird coinheringaahing
2
Bem-vindo ao PPCG! Eu adicionei uma bandeira linguagem para a sua resposta, e eu sugiro que você adicione uma descrição básica de como o programa funciona - mas por outro lado, grande primeira resposta :)
Taylor Scott
2
@TaylorScott Will do! E obrigado, estou aqui há um ou dois anos, mas nunca enviei nada antes. Só não pude resistir por causa da Finlândia completar 100 anos!
FatalError
7

Processing.org / Java 191 188 bytes

-3 bytes graças a KevinCruijssen

import java.util.*;void setup(){size(180,110);background(-1);fill(0);if(new Date().getTime()>=15125256e6D)text("100",0,9);noStroke();scale(10);fill(#003580);rect(5,0,3,11);rect(0,4,18,3);}

Antes Depois

PrincePolka
fonte
>15125255999999Lpode ser>=15125256e6
Kevin Cruijssen
@KevinCruijssen talvez possa ser mais curto, mas 15125256e6 é 15125255815168, que é de 37 horas de atraso
PrincePolka
15125256e6D funciona, obrigado
PrincePolka
Hmm, 15125256e6é 15125256000000quando eu testo em Java 8. Mas eu não conheço o Processing.org, então talvez seja um pouco diferente ou esteja usando uma versão diferente? Aqui está um TIO com alguns testes básicos 15125256e6para verificar se ele funciona no Java 8. Mas fico feliz que Dele o conserte. Ainda bem que pude ajudar. :)
Kevin Cruijssen
7

Excel VBA, 120 118 117 bytes

Função de janela imediata VBE anônima que não recebe entrada e gera a bandeira da Finlândia e se a Finlândia tiver mais de 100 anos de idade a 100 nessa bandeira. Isso é feito com relação ao fuso horário da Páscoa nos Estados Unidos, pois não há como o Excel ou o Excel VBA determinar o fuso horário sem suplementos ou acesso à Internet.

Cells.RowHeight=48:Cells.Interior.Color=-1:[F1:H11,A5:R7].Interior.Color=8402176:If Now>=#12/5/17 19:0#Then[B2]=100

Saída

Se a Finlândia tiver menos de 100 anos

Jovem finlandês

Se a Finlândia tiver mais de 100 anos

Finlandês antigo

-2 Byte para alteração If #12/5/17 19:00#<=Now Then[B2]=100 paraIf Now>=#12/5/17 19:0#Then[B2]=100

-1 Byte para uso em Cellsvez de[A1:R11]

Taylor Scott
fonte
2
Quem pensaria que o velho VBA poderia fazer isso. Excelente.
Floris
3
@ Florida, eu percebi que, quando se trata de pixel art, o Excel VBA pode fazer coisas incríveis. : D
Taylor Scott
Lembro-me de escrever algo no precursor do VBA (uma linguagem macro louca que foi escrita nas células da planilha do Excel, uma linha por célula) que fez algo semelhante (crie um gráfico de intensidade 2D de uma função que eu estava estudando). Isso deve ter sido em 1991. Obrigado pelas lembranças.
Floris
11
@Floris bem, isso é uma vergonha - mas é bom saber que alguém sabe o que eles são :)
Taylor Scott
11
E pense bem - havia algo antes da versão 4.0 ... Lembro-me de ficar chateado quando tudo quebrou. Como já fiz muitas vezes desde então. Mestres não compatíveis com versões anteriores.
Floris
5

MATLAB, 133 130 123 bytes

3 10 bytes sabed obrigado por @flawr!

r=1:180;r(51:80)=0;imshow(r(11:120)'*r,[0 .2 .5;1 1 1])
if datenum(datetime('now','T','UTC+2'))>=737035 text(9,9,'100'),end

Isso usa [0, 51, 128] para a cor azul. O tamanho da imagem é 180 × 110 pixels.

Exemplo de execução:

insira a descrição da imagem aqui

Exemplo de execução com o texto (alterando 737035para 0no código para que o texto seja mostrado em qualquer dia):

insira a descrição da imagem aqui

Luis Mendo
fonte
4

JavaScript (ES5) + SVG (HTML5), 189 179 bytes

document.write('<svg><path d=M0,0h180v110H0z fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0Z fill=#005580 />'+(Date.now()<15125112e5?'':'<text x=0 y=30 fill=#000>100'))
<body color=grey bgcolor=silver>

(HTML para mostrar que os requisitos de cores estão sendo atendidos.) Editar: salvou 10 bytes graças ao @Shaggy. Saídas:

<body color=grey bgcolor=silver>

<svg><path d=M0,0h180v110H0z fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0Z fill=#005580 />

<body color=grey bgcolor=silver>

<svg><path d=M0,0h180v110H0z fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0Z fill=#005580 /><text x=0 y=30 fill=#000>100

Neil
fonte
Como isso lida com o deslocamento do fuso horário quando executado em outro lugar que não no UTC + 2?
Adám
@ Adám Date.now()está no UTC e eu comparo com o valor UTC de 2017/12/06 00:00:00 UTC+2.
Neil
Tudo bem usar seu código SVG no meu snippet php?
precisa saber é o seguinte
2
@ Adám eu já te disse?
Neil
11
Substitua <path></path>por <path/>para salvar alguns bytes.
Shaggy
4

Python 3 com travesseiro, 213 212 211 caracteres (Unix) e 217 216 caracteres (portátil)

Esta é a versão do Unix. Depois de postar, percebi que o tempo retornado por time()não tem necessariamente sua época em 1º de janeiro de 1970, portanto não é necessariamente portátil.

b=8402688;from PIL import Image,ImageDraw as d
j=Image.new('RGB',(180,110),~1);r=d.Draw(j);R=r.rectangle
R([50,0,79,109],b);R([0,40,180,69],b);import time
r.text((9,9),'100'*(time.time()>=0x5a273300),0)
j.show()

Este é o código portátil, mais 4 bytes, que ele usa gmtimena comparação de tuplas, portanto deve funcionar de maneira confiável no Windows também.

import time
from PIL import Image,ImageDraw as d
b=8402688
j=Image.new('RGB',(180,110),~1)
r=d.Draw(j)
R=r.rectangle
R([50,0,79,109],b)
R([0,40,180,69],b)
r.text((9,9),'100'*(time.gmtime()>(2017,12,5,22)),0)
j.show()

As imagens são exibidas em uma janela. Realmente difícil fazê-lo consumir menos caracteres. Até os time.timeretornos de um floatso >0x5a273299não seriam tão corretos ou >0x5a273300seriam desligados em um microssegundo.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Antti Haapala
fonte
4

Tcl / Tk , 135 bytes

Deve ser executado no shell interativo

gri [can .c -bg #FFF]
lmap C {"52 2 82 112" "2 42 182 72"} {.c cr r $C -f #003580 -w 0}
if [clock se]>1512518520 {.c cr t 19 9 -te 100}

Antes de 06/12/2017 02:00 GMT

insira a descrição da imagem aqui

Após 06/12/2017 às 02:00 GMT

insira a descrição da imagem aqui

sergiol
fonte
4

Java 342 368 361 321 317 (299 + 18) bytes

Golfe

import java.awt.*;()->new Frame(){{setBackground(Color.WHITE);setUndecorated(0<1);setSize(180,110);setVisible(0<1);}public void paint(Graphics g){g.setColor(new Color(0,53,128));g.fillRect(50,0,30,110);g.fillRect(0,40,180,30);g.setColor(Color.BLACK);if(System.currentTimeMillis()>15125112e5)g.drawString("100",9,9);}}

Ungolfed

import java.awt.*;
() -> new Frame() {
    {
        setBackground(Color.WHITE);                     //Color Objects ARE just RGB values
        setUndecorated(0 < 1);                          //Get's ride of title bar
        setSize(180, 110);             
        setVisible(0 < 1);
    }
    public void paint(Graphics g) {
        g.setColor(new Color(0, 53, 128));              //The special blue color
        g.fillRect(50, 0, 30, 110);
        g.fillRect(0, 40, 180, 30);
        g.setColor(Color.BLACK);
        if (System.currentTimeMillis() > 15125112e5)    //Time Condition
            g.drawString("100", 9, 9);
    }

Resultado

Finlândia

Créditos

40 bytes salvos por Olivier Grégoire para usar lambda.
4 bytes salvos por Kevin Cruijssen para formatação longa.
2 bytes salvos pelo user902383 para formatação hexadecimal.

jfh
fonte
11
@jfhcs: Bem, infelizmente, essas eram as regras. E ... isso é Java.
precisa saber é o seguinte
11
Ah entendo. Vou atualizar minha resposta. Eu devo ter interpretado mal as regras.
Jfh
11
Você pode substituir os trues com 1>0, argscom a, e pode remover os espaços em torno =de P j = new...economizar alguns bytes.
Justin Mariner
11
342 bytes (324 bytes + 18 bytes para import java.awt.*;), com a condição incluída.
Olivier Grégoire
11
Sua resposta atual tem várias falhas que a tornam inválida: 1. não existe import. 2. os nomes das variáveis ​​não são abreviados: argspodem ser reduzidos para a. 3. ainda existem espaços opcionais contidos na entrada. 4. não há impressão condicional de "100".
Olivier Grégoire
3

vim, 147

Eu realmente gosto deste desafio ☺. © é fuga.

sy on
set ft=c
hi Normal ctermfg=4 ctermbg=7
hi Number ctermfg=0 ctermbg=7
norm 90i ©26|15r█Y40pMVr█Y14Pk
if localtime()>1512511199
norm R100 

insira a descrição da imagem aqui

pacholik
fonte
3

bash e imagemagick, 135

((`date +%s`>1512511199))&&x=100
convert -size 150x80 xc: -background \#003580 -splice 30x30+50+40 -draw "fill black text 9,9 '$x'" x:

insira a descrição da imagem aqui insira a descrição da imagem aqui

pacholik
fonte
11
Melhor usar a avaliação aritmética: ((`date +%s`>=1512511200))&&x=100. Observe que movi as aspas simples dentro do -drawparâmetro, onde elas não precisam ser escapadas.
Manatwork
2

Tampio imperativo , 239 bytes (não competitivo)

Kun iso sivu avautuu,se näyttää tekstin"<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"ja,jos nykyinen aika millisekunteina on suurempi kuin 1512511200000,niin se näyttää tekstin"<text y=19>100".

Kun iso SIVU avautuu , se näyttää tekstin "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"ja , jos nykyinen aika millisekunteina em suurempi kuin 1512511200000 , NIIN se näyttää tekstin"<text y=19>100" .

Versão online

Tradução:

Quando a página grande for aberta, ele mostrará o texto "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"e, se o tempo atual em milissegundos for maior que 1512511200000, mostrará o texto "<text y=19>100".

SVG foi retirado de desta resposta por th3pirat3 (e Neil, aparentemente).

Este programa está escrito em uma nova versão do Tampio em que tenho trabalhado. Quem conhece o finlandês pode ver que é quase legível. Marquei a resposta como não concorrente porque esse idioma foi publicado após esse desafio.

Para executar este programa, acesse a versão on-line acima, que contém a versão JS compilada do programa, ou faça o download do compilador na página do Github . Para compilar o programa, execute python3 tampio.py -p program.itp >program.html.

Tampio não é uma linguagem de golfe em nenhuma medida, mas devido ao melhor código svg, ele realmente venceu Röda ... Fiquei um pouco surpreso.

fergusq
fonte
É mais assim!
Antti29
2

festança, 198

p()(printf "%-$1b$3" "\e[$2m")
r()(for i in `seq $1`;{ $2;})
a()(p 31 107
p 20 44
p 56 30\;107 "${1:-   }"
p 0 0 '
')
b()(p 95 44
p 0 0 '
')
r 20 a
r 15 b
r 19 a
((`date +%s`>1512511199))&&a 100||a

insira a descrição da imagem aqui insira a descrição da imagem aqui

pacholik
fonte
1

HTML + CSS + Javascript, 339 bytes

<style>#f{width:180px;height:110px;position:relative}.b{background-color:#003580;position:absolute}.v{left:27.78%;width:16.67%;height:100%}.h{top:36.36%;height:27.27%;width:100%}</style><div id="f"><div class="b v"></div><div class="b h"></div></div><script>if(Date.now()>1512525600000)document.getElementById('f').innerHTML+=100;</script>

Aqui está a mesma solução reduzida para 260 bytes, que assume que a porta de visualização possui a proporção adequada de 18:11.

<style>.b{background-color:#003580;position:absolute}.v{left:27.78%;width:16.67%;height:100%}.h{top:36.36%;height:27.27%;width:100%}</style><div class="b v"></div><div class="b h"></div><script>if(Date.now()>1512525600000)document.body.innerHTML+=100;</script>

Você pode tirar um 0 do carimbo de data e hora em qualquer solução para ver o "100" aparecer.

jstnthms
fonte
1

HTML + Javascript, 329 bytes

Eu descaradamente roubei a parte de verificação de data de @jstnthms. Basicamente, eu apenas escrevo a tabela html com as proporções corretas de linha / col, thsendo as partes azuis. Testado em IE e Chrome, também em mee.fi -site.

<body onload="h=[4,3,4];w=[5,3,10];m=50;s='<style>*{border-spacing:0;padding:0;}th{background:#003580;}</style><table>';for(y in h){s+='<tr height='+(m*h[y])+'>';for(x in w){c=(y==1||x==1)?'h':'d';s+='<t'+c+' width='+(m*w[x])+'>'+(x+y<1&&Date.now()>15125112e5?'100':'')+'</t'+c+'>';}s+='</tr>';}s+='</table>';document.write(s);">
diynevala
fonte
Poderia ser ainda mais jogado por javascript puro (colar no console) ...?
diynevala
1

Perl 5, 139 bytes

($w,$b,$r)=map"\e[${_}m","47;30",44,0;$_=$w.$"x25 .$b.$"x15 .$w.$"x50 .$r.$/;$_=$_ x12 .s/7/4/gr x9 .$_ x12;time<1512511200||s/   /100/;say

ser lançado

perl -E '($w,$b,$r)=map"\e[${_}m","47;30",44,0;$_=$w.$"x25 .$b.$"x15 .$w.$"x50 .$r.$/;$_=$_ x12 .s/7/4/gr x9 .$_ x12;time<1512511200||s/   /100/;say'

capturar

relação foi alterada devido à proporção de caracteres altura / largura = 1,66 (5/3), caso contrário com a relação original:

($w,$b,$r)=map"\e[${_}m","47;30",44,0;$_=$w.$"x25 .$b.$"x15 .$w.$"x50 .$r.$/;$_=$_ x20 .s/7/4/gr x15 .$_ x20;time<1512511200||s/   /100/;say

proporção original

Nahuel Fouilleul
fonte
1

Raquete 6.10 com 2htdp / imagem, 202 bytes

(let*([w 180][h 110][p(λ(w h x y o)(place-image(rectangle w h'solid(color 0 53 128))x y o))][b(p w 30 90 55(p 30 h 60 55(empty-scene w h)))])(if(>(current-seconds)1512536400)(overlay(text"100"9'b)b)b))

Ungolfed:

(let* (
       [flag-width 180]
       [flag-height 110]
       [place-rect (λ (width height x-pos y-pos other-pos)
                     (place-image
                      (rectangle width height 'solid (color 0 53 128))
                      x-pos y-pos other-pos))]
       [flag (place-rect
              flag-width 30 90 55
              (place-rect
               30 flag-height 60 55
               (empty-scene flag-width flag-height)))]
       )
  (if (> (current-seconds) 1512536400)  ; If Finland is 100 years old
      (overlay (text "100" 9 'b) flag)  ; add "100" to the flag
      flag))                            ; otherwise just the flag

com texto insira a descrição da imagem aqui

Julian Zucker
fonte
Você é o primeiro a colocar a 100peça em uma peça azul - quase perdeu.
Antti29
1

Small Basic , 300 bytes

Um script que não recebe entrada e sai para o TextWindowobjeto.

GraphicsWindow.BrushColor=0
If Clock.Year*10000+Clock.Month*100+Clock.Day>=20171206Then
GraphicsWindow.DrawText(0,0,"100")
EndIf
GraphicsWindow.Height=275
GraphicsWindow.Width=450
GraphicsWindow.BrushColor="#003580
GraphicsWindow.FillRectangle(0,100,450,75)
GraphicsWindow.FillRectangle(125,0,75,275)

Experimente no SmallBasic.com! Requer IE / Silverlight

Saída

Mostrado após o 100º dia da independência da Finlândia. Saída

Taylor Scott
fonte
0

o código criado anteriormente foi reduzido para o seguinte:

HTML, CSS e JavaScript, 1599 bytes

var d1=new Date(1917,11,6);
var d2=new Date();
var difference = d2.getFullYear()-d1.getFullYear();
if(difference===100 && d2.getDate()===d1.getDate() && d2.getMonth()===d1.getMonth()) {
	document.getElementById("bottom-right").innerHTML=d2.getFullYear()-d1.getFullYear();
}
#flag{
background-color: #FFF;
width: 540px;
height: 330px;
border: 6px solid gray;
margin: 10% auto;
}
.surround{
background-color: #003580;
width: 90px;
height: 120px;
margin: 0px 300px 0px 150px;
}
.middle{
background-color: rgb(0, 53, 128);
width: 540px;
height: 90px;
}
<head>
<title>Happy Birthday, Finland</title>
<link rel="stylesheet" type="text/css" href="decor.css">
</head>
<body>
<div id="flag"><div class="surround"></div><div class="middle"></div><div class="surround"></div></div>
<script type="text/javascript" src="date.js"></script>
</body>

Raunaq Koppikar
fonte
Bem, em minha defesa, eu diria que é a minha primeira vez. Tentará fazer um código mais curto no futuro.
Raunaq Koppikar
Como Stephen já disse, este é um código de golfe e, portanto, seu programa deve ser o mais curto possível. Lembre-se de que, se você não joga seu programa (ou seja, deixa-o como está), ele está sujeito a exclusão, pois atualmente não é um candidato sério. Finalmente, bem-vindo ao site!
caird coinheringaahing
Certo. Definitivamente vou
jogar golfe o
Editado como sugerido
Raunaq Koppikar
Você também pode remover o recuo em todos e remover as novas linhas em CSS e HTML. Além disso, você pode remover espaços entre símbolos em JS (como ===e 100).
NoOneIsHere
0

HTML + JavaScript, 247 bytes

<table cellspacing=0 cellpadding=0><tr height=40><td width=50><td width=30 bgcolor=003580><td width=100><tr height=30><td colspan=3 bgcolor=003580><tr height=40><td><td bgcolor=003580><td><script>Date.now()>15125112e5&&document.write(100)</script>

tsh
fonte
0

JavaScript ES6, 532 bytes

Decidi tentar usar uma imagem Base64 para ver o quão curto eu poderia obtê-la. Não é um vencedor, mas interessante, no entanto.

document.write(`${Date.now()>1512525600000?'<i style=position:fixed>100</i>':''}<img src=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAABuAQMAAAC0pqs4AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX///8ANYAaS5LoAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EMBRcAAPqLykEAAAAxSURBVEjHY2AAA/v///8zYAGj4qPio+KDWfw/VvBhVHxUfEiKD7b8NSo+Kj4qTrQ4AHKtsHq12fKCAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTEyLTA1VDIzOjAwOjAwKzAxOjAwkDJOKAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0xMi0wNVQyMzowMDowMCswMTowMOFv9pQAAAAASUVORK5CYI>`)

Jamie Barker
fonte
Não há necessidade de parênteses na interpolação ( ${(…)}${…}); não há necessidade de aspas duplas em torno desses valores de atributo HTML; Embora inválido, na maioria dos casos, você pode cortar o preenchimento das cadeias codificadas com base64 com sinais de igual (o Firefox certamente não tem nenhum problema em decodificá-lo).
Manatwork