Boa tarde,
Seu objetivo é, na menor quantidade de bytes de código-fonte, recriar qualquer uma das pinturas de 'Composition' de Piet Mondrian (por exemplo, Composition # 10 ).
A recreação pode usar as cores reais ou substituí-las pelas cores apropriadas da Paleta de 16 cores padrão do Windows.
Sua recreação pode ser gerada em PNG, BMP ou NetPBM, em um arquivo ou em STDOUT, ou diretamente na tela.
Sua recreação deve ter uma resolução de 512x512 ou superior.
Sua recreação não deve acessar a internet. Se o seu programa exigir arquivos de dados, o tamanho deles será adicionado ao tamanho da sua fonte.
Sua pontuação será do tamanho do seu arquivo de origem em bytes.
Informe com sua inscrição qual pintura você está recriando e forneça um link para o original e uma imagem de sua recreação.
Boa sorte.
fonte
Respostas:
Tikz, 175 bytes
Composição III em preto e branco , 175 bytes
Verifique na Blogosfera
Este é talvez um dos trabalhos mais minimalistas de Mondrian e estou surpreso que ninguém o tenha encontrado ainda. No entanto, não é particularmente interessante, por isso incluí várias outras pinturas na minha resposta.
Explicação
Existe um pouco de invólucro associado a todas as respostas do tikz. O wrapper é:
Depois de passar pelo wrapper, existem algumas
\def
instruções que salvam bytes, mas infelizmente ofuscam o código:Se fizermos todas as substituições apropriadas, nosso código será parecido com:
O primeiro bit é um
\clip
e é muito importante, mas vamos ignorá-lo por enquanto.Agora, desenhamos a primeira linha na tela em branco. Essa linha é bastante grossa, então usamos
[line width=2mm]
para definir a espessura para2mm
:Isso conecta alguns nós e produz esta forma:
Em seguida, temos
\draw
um segundo traçado, no entanto, como é mais fino, precisamos definir a espessura da linha para1mm
:Agora nossa pintura se parece com:
Isso é próximo do original, mas não é bem assim, então é aqui que
\clip
entra o jogo. Usamos o\clip
para remover todas as linhas extras da tela e definir a tela para o tamanho correto. Com a tela redimensionada, obtemos a imagem:Composição com remendo amarelo , 214 bytes
Avalie no CyberSpace
Explicação por vir
Composição II em azul e amarelo , 225 bytes
Avalie-o através do Webbernetz!
Explicação por vir
Composição B (No. 2) em vermelho , 232 bytes
Tente dentro da Internet!
Explicação
Primeiro, aqui está o código com quebras de linha inseridas para torná-lo mais legível:
O primeiro comando de interesse é
Isso desenha um retângulo vermelho com um contorno preto. Para o canto superior esquerdo da pintura.
Em seguida, desenhamos mais dois retângulos com interiores brancos e contornos pretos para criar o padrão de grade na pintura
Em seguida, desenhamos uma linha fina
E corte a imagem no tamanho adequado
Composição II em vermelho, azul e amarelo , 251 bytes
Teste-o na Internet!
Explicação
Primeiro, insiro algumas quebras de linha para tornar meu código legível
A primeira linha de importância é:
Isso desenha a seguinte forma:
Essa forma estranha é o retângulo amarelo no canto inferior direito e as duas linhas que não são a borda de um retângulo colorido. Em seguida, inserimos o quadrado vermelho e encobrimos as linhas extras feitas pela última forma:
Isso sai parecido com:
Agora inserimos nosso quadrado azul:
Agora tudo o que resta é cortar todas as partes desnecessárias da imagem usando um
\clip
Composição II , 308 bytes
Confira na Superestrada da Informação
Explicação por vir
fonte
Mathematica
202287 bytes.Apenas por diversão! 330 bytes: Mondrian com "Boogie Woogie" em seu título
Envio real [287 bytes]
\[SpanFromLeft]
e expressões semelhantes ocupam aproximadamente 85 bytes. Na mathematica, cada expressão tem seu símbolo de um caractere dedicado.Saída à esquerda; foto de Piet Mondrian, vermelho azul amarelo composição à direita.
fonte
Ruby, 112 (111) caracteres
Piet Mondrian - composição em B (No.II) com Vermelho
minha produção à esquerda, a referência aprimorada à direita.
As cores podem ser levemente ajustadas - até uma precisão de 1/9 - sem perda de pontuação, ajustando o valor máximo no PPM. Eu escolhi a abordagem "cor Win16 adequada". O branco 8/9 provavelmente está mais próximo da cor original da tela, mas 9/9 está mais próximo da intenção do autor.
Um caractere pode ser salvo se substituirmos"1 0 0 "
por(w+b+b)
(# F00 vermelho). Eu acredito que conta como "perto o suficiente"versão de saída do arquivo (sem golf)
fonte
"0 "
->b
w="2 "
paraw="2 "*9
eb
também.ppm
arquivo e aberto em um editor de imagemSmileBASIC,
27741892 bytesBroadway Boogie Woogie
Cada uma das "linhas" na imagem é armazenada neste formato:
Todos os números são armazenados como
CHR$(number+32)
, as cores são armazenadas como um caractere;w
,y
,r
, Oub
, e a direcção é armazenado como|
ou-
Os retângulos extras são armazenados apenas como:
Do mesmo jeito.
fonte
SVG - 455
480- Composição Mondrian II em vermelho, azul e amareloSe você pode incorporar Javascript no SVG e torná-lo dinâmico, é uma linguagem de programação. Portanto, este é um programa. Acontece que se um
x
ouy
coord estiver ausente no SVG, o padrãored
é 0. Também é mais curto que#f00
!Pretty Printed:
fonte
SmileBASIC, 67 bytes
Escolhi uma fácil: Composição III em preto e branco
Felizmente, a página de gráficos do SB tem exatamente 512x512 pixels, mas nem tudo se encaixa na tela de 400x240, por isso não consigo obter uma captura de tela facilmente.
Explicado:
fonte
Processando,
15.44715.441 15.439bytesForça bruta, e não consegui encontrar uma maneira de remover a função draw.
Erros no mecanismo de processamento principal, acho que porque é um b64 muito grande. Você pode testá-lo aqui .
No entanto, os violinos de JS cortam isso para 100 * 100px. Minha base64 funciona, mas o ambiente online não. :(
fonte
PImage x=loadImage(i);
vez dissodata:;base64
funciona tão bemLove2D, 4956 + 395 + 1 = 5351 bytes
O arquivo de dados é armazenado AQUI
Saída:
Original:
Explicação
O codificador.
Este é apenas o script que eu usei para codificar a imagem. Gif funcionou mais compactado, mas não fui desafiado a exibir um gif.
Principalmente competindo pela recompensa. Provavelmente, existem maneiras melhores de fazer isso, mas achei interessante tentar usar um palete simples e decodificar o comprimento da execução.
EDIT: A imagem de entrada foi simplificada, um pouco menos precisa, mas uma magnitude menos bytes.
fonte