Tarefa: Emita a bandeira suíça.
Feliz Dia Nacional da Suíça / Schweizer Bundesfeiertag / Fête nationale suisse / Festa nazionale svizzera / Fiasta naziunala svizra!
Detalhes:
a bandeira consiste em uma #FFFFFF
cruz branca ( ) em um #FF0000
fundo vermelho ( ). A cruz consiste em um quadrado 6x6 com braços do tamanho 6x7 colados a cada lado. A cruz está no centro do plano de fundo quadrado de 32x32, com uma distância de 6 unidades para cada lado. ( Fonte )
O tamanho da saída pode ser escolhido pelo participante, mas a imagem deve corresponder exatamente a essas proporções, ou seja, seu tamanho deve ser um múltiplo de 32.
Uma versão mínima seria assim:
echo 🇨🇭
- Eu suponho que isso não é permitidoRespostas:
SVG (HTML5),
94838264 bytesEconomizou 2 bytes graças a @ThePirateBay. Guardou 1 byte graças a @ATaco. Economizou 18 bytes graças a @CraigAyre, indicando que uma imagem de 32 × 32 era aceitável. Conforme apontado por @Shaggy, isso pressupõe que seu plano de fundo padrão seja branco; adicione 22 bytes para um sinalizador que funcione em qualquer plano de fundo:
fonte
>
no seu tag de caminho é opcional.viewBox
para a versão mínima?<svg><path d=M0,0V32H32V0M6,13h7V6h6v7h7v6H19v6H13V19H6 fill=red
Código da máquina x86-16 para DOS, 43 bytes
O código acima foi projetado para ser montado como um arquivo COM e executado no DOS. Ele chama os serviços de vídeo ROM BIOS para plotar os pixels individuais da bandeira, formando uma representação 32 × 32 da bandeira Suíça no canto superior esquerdo da tela.
O código pressupõe que o modo de vídeo já esteja definido no modo 0x13, o que também significa que requer uma exibição VGA. Outros modos de vídeo podem ser usados, mas a exigência de VGA fornece duas coisas: (1) pixels quadrados e (2) uma paleta padrão que inclui um verdadeiro 100% vermelho (
0xFF0000
) (o que significa que você não precisa perder bytes alterando a paleta cores). Antes de executar este programa, você precisará, portanto, alternar sua exibição para o modo 0x13; o seguinte código é tudo o que você precisa para fazer isso:O código não faz outras suposições e deve ser executado em qualquer hardware compatível com x86 em um sistema operacional compatível com DOS.
No entanto, o programa termina imediatamente após o desenho da bandeira, de modo que o prompt do DOS será reimpresso normalmente no canto superior esquerdo da tela, cobrindo as poucas linhas superiores da bandeira. Portanto, se você quiser se maravilhar com a saída verdadeira, precisará interromper / pausar o sistema antes que ele seja
RET
processado. Aqui está uma captura de tela da aparência, executando em uma máquina virtual FreeDOS:Pode ser possível resolver isso ainda mais, escrevendo dados de pixel diretamente no buffer de vídeo, especialmente porque já estou assumindo o modo 0x13. Ainda não tentei isso.
INT 0x10
já é uma instrução bastante curta, mas se eu puder usar as instruções da string de um byte para gravar dados de pixel diretamente na memória, isso poderá resultar em uma economia significativa de código.fonte
MATL , 29 bytes
Experimente no MATL Online!
Explicação
fonte
Java 8, 246 + 42 = 288 bytes
Graças a @Aaron por -64 bytes.
-4 bytes, enviando para o arquivo
a
sem extensão.Uma expressão lamba que pode ser atribuída a um método de interface funcional que gera uma exceção. Cria um arquivo de imagem chamado
a
(um arquivo de imagem) no diretório que está executando este arquivo.Código circundante usado para executá-lo: Experimente online!
Ungolfed
Resultado
Grade fornecida pela visualização da imagem do IntelliJ IDEA (aparentemente).
fonte
fillPolygon
chamada em duasfillRect
chamadas. Eu não estou certo de que respeitou as dimensões, mas eu vim comg.fillRect(7,13,18,6);g.fillRect(13,7,6,18)
que é mais curto por 64 bytes.png
vez dea.png
e salvar um byte.a
, sem uma extensão? Ele ainda pode ser aberto, basta dizer para abrir em um visualizador de fotos.Excel VBA,
868579 bytesCódigo
Função de janela imediata VBE anônima que não recebe entrada e envia a bandeira suíça para o intervalo
[A1:F32]
doActiveSheet
objeto. Isso funciona primeiro tornando as células quadradas, depois desenhando a região vermelha e finalmente desenhando na cruz branca.Observe que os arranjos que removem a etapa de colorir a "cruz" da bandeira suíça depois de colocar o fundo vermelho são realmente mais longos que a configuração acima, pois exigem pelo menos 16 endereços de célula, que coordenam as 8 regiões distintas do bandeira
-1 Byte graças a @ Greedo por
RowHeight=48
mais deColumnWidth=2
-6 Bytes graças a @ Greedo's em
-1
vezrgbWhite
Resultado
fonte
Interior.Color=-1
em vez deInterior.Color=rgbWhite
rgbWhite
sobre o valor decimal de16777215
para maior clareza, não tinha ideia de que-1
teria o mesmo efeito. Obrigado!C ++, SFML,
406399394 bytes-2 bytes graças a pdpi
-10 bytes graças a Zacharý
SFML (Simple and Fast Multimedia Library) é uma biblioteca C ++ criada para facilitar o desenvolvimento de videogames e programas multimídia
O código :
O sinalizador é exibido em uma janela de 128x128. Seu sistema operacional deve poder exibir uma janela de 128x128 (o meu Win8.1 não pode ser exibido com largura menor)
AVISO : você pode adicionar estas 2 linhas de código:,
t.setFramerateLimit(60);t.setVerticalSyncEnabled(true);
para que sua CPU não aqueça quando você executar o código. Não os coloquei no código original por razões de golfe.fonte
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
, talvez até!e.type
(não se lembre da precedência).24.f }
=>24.f}
using namespace sf;
possível?Braindraw, 227 bytes (Não concorrente) (Atualizado para realmente funcionar)
Versão não destruída (241 bytes)
Versão com pouco golfe (227 bytes)
Braindraw é uma linguagem de programação de meu próprio projeto. Hoje, às 15h08, eu tenho um intérprete ativo e verifiquei se o programa funciona corretamente. No entanto, o intérprete não existia antes do início da competição, portanto não estou competindo.
Braindraw é o mesmo que Brainf ***, exceto que ele opera em três matrizes bidimensionais, em vez de uma matriz unidimensional. Essas matrizes são chamadas de r, ge eb, e atuam como os canais de cores vermelho, verde e azul. O operador r move o ponteiro para o canal vermelho, etc. etc. Up is ^, down is v.
fonte
TI-BASIC (apenas TI-84 Plus C (S) E)), 58 bytes
fonte
Mathematica, 83 bytes
o próximo é de @ ASCII-only (eu pensei que era uma piada, mas funciona!)
Mathematica, 23 bytes
-10 bytes de @Jonathan Frech
fonte
CountryData["Switzerland","Flag"]
mas pode não ter as proporções corretas"Switzerland"~CountryData~"Flag"
economiza um pouco mais"CH"~CountryData~"Flag"
leva apenas 23 bytes.HTML + CSS, 15 + 117 bytes = 132 bytes
Usando um wrapper flexbox com um
inset
box-shadow
.HTML + CSS, 18 +
139137122 bytes = 140 bytesResposta anterior usando
border
e um invólucro flexbox intermediário com negativomargin
.fonte
GraphicsMagick (?), 96 bytes
Não sabe ao certo como jogar golfe com a GM (isso deve ser considerado um idioma?). Também não sei como contar bytes aqui ...
Com o GM instalado, digite o código fornecido no windows cmd, você obterá uma imagem com o nome
1.bmp
. Você pode alterar aspas duplas para aspas simples se estiver usando o bash (deve funcionar, mas eu não testei isso).Obrigado ao Digital Trauma. use apenas um
-draw
salvar 8 bytesfonte
-draw
cadeia: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 bytes
Guardado 2 bytes graças a user2428118
Guardado 2 bytes graças a Matheus Avellar
JSFiddle
JavaScript puro,
194129 bytesJSFiddle
fonte
<canvas>
você pode incluir o HTML diretamente em sua resposta. Veja codegolf.stackexchange.com/a/136972/47097JavaScript (ES6) em HTML4 (?),
178176 bytesSim! Nós não precisamos
<canvas>
nem<svg>
nem mesmo<img>
!Graças a Justin Mariner, economize 2 bytes.
fonte
Löve2D ,
139138 BytesGuardado um byte graças a ThePirateBay
Ungolfed
fonte
Python 3 , 190 bytes
Salve a saída como
image.xpm
e abra com seu editor de texto favorito.Experimente online!
Resultado:
fonte
Perl 5 , 184 bytes
Código de 176 bytes + 8 para
-Mutf8 -p
.Não tenho certeza absoluta de que isso seja necessário, pois depende da entrada vazia, conforme esta meta post , que não funciona no TIO, portanto fornece uma nova linha (que não é usada). A saída é para o terminal e fica assim:
As proporções devem ser dimensionadas com base no espaço de um caractere, sendo dois 'pixels' verticais.
Experimente online!
Você pode visualizar a saída copiando do TIO e colando aqui (isso mostra os caracteres de controle quando o mouse fica sobre o elemento) .
fonte
GFA BASIC (Atari ST), 62 bytes
Uma listagem editada manualmente no formato .LST. Todas as linhas terminam com
CR
, incluindo a última.Expandido e comentado:
Resultado
A saída é 32x32.
NB: De fato, está usando a cor 'branca', embora pareça cinza no emulador (e também na coisa real, a menos que você aumente o brilho).
fonte
R,
171140 bytes.(um pouco) não destruído:
Obrigado a @gregor por salvar alguns bytes
Executá-lo!
fonte
e=2
vez deeach=2
, emt
vez detype
,c
paracol
,b
paraborder
. E0*1:4
é mais curto quec(0,0,0,0)
.plot
:plot(0,0,'n',l,l,xaxs="i",yaxs="i")
(atribuirm="i"
realmente custa um byte). Com tudo isso, chega a 141 bytes.l
exlim
/ylim
não são necessários, apenasplot(0:32,0:32,...)
. Também adaptei sua abordagem e a reduzi para 117 aqui, usando emrect
vez depolygon
.Oitava,
105 bytes73 bytesNota: feeds de linha adicionados para maior clareza, não incluídos na contagem de bytes
EDIT: graças ao flawr por economizar bastante bytes!
Aqui está o resultado em octave-online.net, graças a sanchises
fonte
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 bytes
Barato e pesado em bytes, mas vale a pena.
EDIT: alguns caracteres não estão no código acima, aqui está uma pasta para o hexdump do GIF.
EDIT: compactado até 97 bytes com a ferramenta online.
fonte
HTML + JavaScript (ES6), 13 + 112 = 125 bytes
HTML + JavaScript (ES6), 13 + 114 = 127 bytes
fonte
clearRect
, espero que você esteja bem com isso?C #
265/266209 bytesEu escrevi caracteres "espaço" no console enquanto mudava a cor de fundo. Mas se você acha que é muito alto e conta apenas um caractere como 8 x 16 pixels, basta dobrar os valores próximos a "j" assim (+ 1 byte e +
c.ReadKey();
para que pare):56 bytes economizados graças ao TheLethalCoder
fonte
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 bytesAqui está "não destruído"
Aqui é um pouco mais destruído
Isso torna três retângulos um grande vermelho e dois menores brancos para o plus.
Aqui está o que parece. Realmente não parece diferente dos outros.
fonte
documentclass
no github há algumas semanas. e não parece haver nenhum requisito de plano de fundo da janela. Com isso\documentclass{g}\input tikz
deve funcionar para salvar 5B. Provavelmente, você pode economizar mais, trabalhando em TeX liso , mesmo com TikZR, 109 bytes
Utilizado
frame
para evitar a predefinição de uma plotagem, mas a região de plotagem padrão está no intervalo [0,1] em vez de [0,32]. Também usa o fato de querect
é vetorizado. O tamanho padrão da janela de plotagem é 7in x 7in. Emite o seguinte:R, 125 bytes
O padrão para
png
é um quadrado de 480x480 pixels. Saída é o seguinte arquivo png:fonte
R, 112 bytes
No entanto, para garantir a proporção, precisamos de mais 5 bytes, para um total de 117:
Com muita inspiração da resposta de Alex Axthelm , e obrigado a Rift por salvar mais alguns bytes.
fonte
bg="red"
parabg=2
o que é o mesmo na paleta padrãoPostscript,
301 286187 bytesObrigado ao editor anônimo que sugeriu uma redução de 99 bytes!
fonte
Vermelho , 79 bytes
Código:
Resultado:
Explicação:
fonte
Bitmap, 160 bytes
Aqui está um bitmap com profundidade de cor de 1 bit, usando uma definição de cores de 24 bits. Os últimos seis bytes da segunda linha são a paleta e a seguir, a matriz de pixels. A cada quatro bytes contém uma linha inteira de pixels.
Tentei truncar os zeros à direita, mas os visualizadores de imagens exigem que haja pixels suficientes definidos para a tela inteira.
fonte
Python 2,
929189 bytesSaída em ppm binário, uso:
Aumentar a profundidade da cor me permitiu usar o espaço para obter o valor máximo
fonte
Tcl / Tk, 94
Se for executado no shell interativo, é possível abreviar
canvas
paracan
egrid
paragri
Tcl / Tk, 98
Se for executado no shell interativo, pode-se abreviar
canvas
paracan
Tcl / Tk, 101
fonte