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):
Especificações da bandeira
- A proporção da bandeira é
18:11
, com a cruz sendo3
unidades grossas, fornecendo um conjunto de proporções horizontal5:3:10
e um conjunto de proporções verticais4:3:4
. - A imagem deve ter pelo menos
180 x 110
pixels de tamanho ou, no caso de arte ASCII,90 x 55
caracteres. - 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, useblue
. - Para a cor branca, use RGB
(255, 255, 255)
ouwhite
.
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 100
deve aparecer em algum lugar na bandeira quando a data na Finlândia ( UTC + 02: 00 ) for 2017-12-06
posterior 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):
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 é código-golfe , então não desperdice caracteres!
fonte
#
no caso da arte ASCII ? E então insira os caracteres em100
algum lugar?Respostas:
C (Windows), 361 bytes
Desenrolado:
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:fonte
PHP + SVG (HTML 5),
147137123 bytesCódigo SVG por Neil
https://codegolf.stackexchange.com/a/149850/66061
Atualização: Obrigado a Shaggy por me ajudar a economizar 10 bytes.
Atualização 2: Idéia inteligente de Ismael Miguel , obrigado por salvar 14 bytes
Normal
Após 6 de dezembro +2 horas
fonte
time()
dá UTC?1512525600
?1512525600
é2017-12-06T02:00:00+00:00 in ISO 8601
@ Adám e sim, time () é independente do fuso horário.Röda ,
252250 bytesExperimente online!
fonte
C #,
407400277 bytesEstranho como
ForegroundColor =0
é permitidoGuardado 1 byte graças a TuukkaX
Guardado 67 bytes graças a Adam
ungolfed para teste:
para testar 100:
fonte
ForegroundColor = 0
é permitido porque o literal0
é conversível em qualquer tipo de enum, conforme escrito na especificação C # .Mathematica, 129 bytes
antes .. depois ..
você sempre pode testá-lo na Wolfram Sandbox
(cole o código e pressione Shift-Enter)
fonte
3721507200
?Python 2 ,
247246230210189 bytesExperimente online!
Imprime uma imagem .ppm:
Sinalizador normal
Bandeira com 100
fonte
datetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)
ser substituído pordatetime.utcnow()>=datetime(2017,12,05,22,0,0)
algo semelhante?time.gmtime
vez disso para comparações de tuplas (veja minha resposta)!Python 3,
143141135 bytesUsa 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çãov
é configurada para string com a cor [Blue, BrightWhite] e o índice selecionado é booleanorow<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, imprimimosv + Blue + Blue + Blue + v + v + Black
ondev
é Blue ou BrightWhite. Para esclarecer a impressão: largura dev
é 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
fonte
Processing.org / Java
191188 bytes-3 bytes graças a KevinCruijssen
fonte
>15125255999999L
pode ser>=15125256e6
15125256e6
é15125256000000
quando 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ásicos15125256e6
para verificar se ele funciona no Java 8. Mas fico feliz queD
ele o conserte. Ainda bem que pude ajudar. :)Excel VBA,
120118117 bytesFunçã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.Saída
Se a Finlândia tiver menos de 100 anos
Se a Finlândia tiver mais de 100 anos
-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
Cells
vez de[A1:R11]
fonte
MATLAB,
133130123 bytes310 bytes sabed obrigado por @flawr!Isso usa
[0, 51, 128]
para a cor azul. O tamanho da imagem é 180 × 110 pixels.Exemplo de execução:
Exemplo de execução com o texto (alterando
737035
para0
no código para que o texto seja mostrado em qualquer dia):fonte
JavaScript (ES5) + SVG (HTML5),
189179 bytes(HTML para mostrar que os requisitos de cores estão sendo atendidos.) Editar: salvou 10 bytes graças ao @Shaggy. Saídas:
fonte
Date.now()
está no UTC e eu comparo com o valor UTC de2017/12/06 00:00:00 UTC+2
.<path></path>
por<path/>
para salvar alguns bytes.Python 3 com travesseiro,
213212211 caracteres (Unix) e217216 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.Este é o código portátil, mais 4 bytes, que ele usa
gmtime
na comparação de tuplas, portanto deve funcionar de maneira confiável no Windows também.As imagens são exibidas em uma janela. Realmente difícil fazê-lo consumir menos caracteres. Até os
time.time
retornos de umfloat
so>0x5a273299
não seriam tão corretos ou>0x5a273300
seriam desligados em um microssegundo.fonte
Tcl / Tk , 135 bytes
Deve ser executado no shell interativo
Antes de 06/12/2017 02:00 GMT
Após 06/12/2017 às 02:00 GMT
fonte
Java
342368361321317 (299 + 18) bytesGolfe
Ungolfed
Resultado
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.
fonte
true
s com1>0
,args
coma
, e pode remover os espaços em torno=
deP j = new...
economizar alguns bytes.import java.awt.*;
), com a condição incluída.import
. 2. os nomes das variáveis não são abreviados:args
podem ser reduzidos paraa
. 3. ainda existem espaços opcionais contidos na entrada. 4. não há impressão condicional de "100".vim, 147
Eu realmente gosto deste desafio ☺. © é fuga.
fonte
bash e imagemagick, 135
fonte
((`date +%s`>=1512511200))&&x=100
. Observe que movi as aspas simples dentro do-draw
parâmetro, onde elas não precisam ser escapadas.Tampio imperativo , 239 bytes (não competitivo)
Versão online
Tradução:
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.
fonte
festança, 198
fonte
HTML + CSS + Javascript, 339 bytes
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.
Você pode tirar um 0 do carimbo de data e hora em qualquer solução para ver o "100" aparecer.
fonte
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,
th
sendo as partes azuis. Testado em IE e Chrome, também em mee.fi -site.fonte
Perl 5, 139 bytes
ser lançado
relação foi alterada devido à proporção de caracteres altura / largura = 1,66 (5/3), caso contrário com a relação original:
fonte
Raquete 6.10 com 2htdp / imagem, 202 bytes
Ungolfed:
fonte
100
peça em uma peça azul - quase perdeu.Small Basic , 300 bytes
Um script que não recebe entrada e sai para o
TextWindow
objeto.Experimente no SmallBasic.com! Requer IE / Silverlight
Saída
Mostrado após o 100º dia da independência da Finlândia.
fonte
o código criado anteriormente foi reduzido para o seguinte:
HTML, CSS e JavaScript, 1599 bytes
fonte
===
e100
).HTML + JavaScript, 247 bytes
fonte
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.
fonte
${(…)}
→${…}
); 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).