Bonne après-midi,
Votre objectif est de recréer, dans le moins d'octets de code source, l'une des peintures «Composition» de Piet Mondrian (par exemple, Composition # 10 ).
La récréation peut soit utiliser les couleurs réelles, soit la remplacer par les couleurs appropriées de la palette de couleurs Windows par défaut 16.
Votre récréation peut être sortie en PNG, BMP ou NetPBM, soit dans un fichier, soit dans STDOUT, soit directement sur l'écran.
Vos loisirs doivent avoir une résolution de 512x512 ou plus.
Vos loisirs ne doivent pas accéder à Internet. Si votre programme nécessite des fichiers de données, leur taille sera ajoutée à la taille de votre source.
Votre score sera la taille de votre fichier source en octets.
Veuillez indiquer avec votre entrée la peinture que vous recréez et fournir un lien vers l'original et une photo de votre récréation.
Bonne chance.
la source
Réponses:
Tikz, 175 octets
Composition III en noir et blanc , 175 octets
Vérifiez-le dans la blogosphère
C'est peut-être l'une des œuvres les plus minimalistes de Mondrian et je suis surpris que personne ne l'ait encore trouvée. Ce n'est cependant pas particulièrement intéressant donc j'ai inclus plusieurs autres tableaux dans ma réponse.
Explication
Il y a un peu d'un wrapper qui est associé à chaque réponse tikz. L'emballage est:
Une fois que vous avez dépassé le wrapper, il y a quelques
\def
instructions qui économisent des octets mais obscurcissent malheureusement le code:Si nous faisons toutes les substitutions appropriées, notre code se présente comme suit:
Le premier bit est un
\clip
et est très important, mais nous allons le sauter pour le moment.Maintenant, nous dessinons la première ligne sur la toile vierge, cette ligne est plutôt épaisse, nous utilisons donc
[line width=2mm]
pour définir l'épaisseur à2mm
:Cela relie quelques nœuds et produit cette forme:
Ensuite, nous avons
\draw
un deuxième trait, mais ce trait est plus fin, nous devons donc définir l'épaisseur de la ligne sur1mm
:Maintenant, notre peinture ressemble à:
C'est proche de l'original mais pas tout à fait, c'est donc là que le jeu
\clip
entre en jeu. Nous utilisons le\clip
pour supprimer toutes les lignes supplémentaires de notre toile et définir la toile à la bonne taille. Avec la toile redimensionnée, nous obtenons l'image:Composition avec patch jaune , 214 octets
Évaluez-le dans CyberSpace
Explication à venir
Composition II en bleu et jaune , 225 octets
Évaluez-le sur le Webbernetz!
Explication à venir
Composition B (n ° 2) en rouge , 232 octets
Essayez-le sur Internet!
Explication
Voici d'abord le code avec des sauts de ligne insérés pour le rendre plus lisible:
La première commande d'intérêt est
Cela dessine un rectangle rouge avec un contour noir. Pour le coin supérieur gauche du tableau.
Nous dessinons ensuite deux autres rectangles avec des intérieurs blancs et des contours noirs pour créer le motif de la grille sur la peinture
On trace ensuite une fine ligne
Et recadrez l'image à la bonne taille
Composition II en rouge, bleu et jaune , 251 octets
Testez-le sur le World Wide Web!
Explication
Je vais d'abord insérer des sauts de ligne pour rendre mon code lisible
La première ligne d'importance est:
Cela dessine la forme suivante:
Cette forme étrange est le rectangle jaune dans le coin inférieur droit et les deux lignes qui ne sont pas le bord d'un rectangle coloré. Ensuite, nous insérons le carré rouge et couvrons les lignes supplémentaires faites par la dernière forme:
Cela ressemble à ceci:
Maintenant, nous insérons notre carré bleu:
Il ne reste plus qu'à recadrer toutes les parties inutiles de l'image à l'aide d'un
\clip
Composition II , 308 octets
Découvrez-le sur l' Information-Super-Highway
Explication à venir
la source
Mathematica
202287 octets.Juste pour le fun! 330 octets: Mondrian avec "Boogie Woogie" dans son titre
Soumission réelle [287 octets]
\[SpanFromLeft]
et les expressions similaires occupent environ 85 octets. En mathématique, chacune de ces expressions a son propre symbole à un caractère.Sortie à gauche; photo de Piet Mondrian, composition rouge bleu jaune à droite.
la source
Rubis, 112 (111) caractères
Piet Mondrian - composition en B (n ° II) avec rouge
ma production à gauche, la référence upscalée à droite.
Les couleurs peuvent être légèrement modifiées - jusqu'à une précision de 1/9 - sans perte de score en modifiant la valeur maximale en PPM. J'ai choisi l'approche "couleur Win16 appropriée". Le blanc 8/9 est probablement plus proche de la couleur d'origine de la toile, mais le 9/9 est plus proche de l'intention de l'auteur.
Un caractère peut être enregistré si nous le remplaçons"1 0 0 "
par(w+b+b)
(# F00 rouge). Je crois que ça compte comme "assez proche"fichier version ouptut (non golfé)
la source
"0 "
->b
w="2 "
enw="2 "*9
etb
aussi.ppm
fichier et ouvrez-le dans un éditeur d'imagesSmileBASIC,
27741892 octetsBroadway Boogie Woogie
Chacune des "lignes" de l'image est stockée dans ce format:
Tous les nombres sont stockés en tant que
CHR$(number+32)
, les couleurs sont stockées en un seul caractère;w
,y
,r
, Oub
, et la direction est stockée sous forme|
ou-
Les rectangles supplémentaires sont simplement stockés sous la forme:
De la même manière.
la source
SVG - 455
480- Mondrian Composition II en rouge, bleu et jauneSi vous pouvez intégrer Javascript dans SVG et le rendre dynamique, c'est un langage de programmation. Ergo, c'est un programme. S'avère si un
x
ouy
coord est manquant dans SVG, il est par défaut à 0. Est égalementred
plus court que#f00
!Assez imprimé:
la source
SmileBASIC, 67 octets
J'en ai choisi une facile: Composition III en noir et blanc
Heureusement, la page graphique de SB fait exactement 512x512 pixels, mais elle ne tient pas toutes sur l'écran 400x240, donc je ne peux pas obtenir une capture d'écran facilement.
Expliqué:
la source
Traitement,
15 447 1544115439 octetsForce brute, et je n'ai pas réussi à trouver un moyen de supprimer la fonction de dessin.
Il y a des erreurs dans le moteur de traitement principal, je pense parce que c'est trop gros d'un b64. Vous pouvez le tester ici .
JS fiddles le recadre cependant, à 100 * 100px. Mon base64 fonctionne, mais pas l'environnement en ligne. :(
la source
PImage x=loadImage(i);
data:;base64
fonctionne aussi bienLove2D, 4956 + 395 + 1 = 5351 octets
Le fichier de données est stocké ICI
Sortie:
Original:
Explication
L'encodeur.
Ce n'est que le script que j'ai utilisé pour encoder l'image. Gif a fonctionné plus compressé, mais je n'ai pas été mis au défi d'afficher un gif.
En compétition pour la prime. Il y a probablement de meilleures façons de le faire, mais j'ai pensé qu'il serait intéressant d'essayer d'utiliser une simple palette et un décodage de longueur.
EDIT: l'image d'entrée a été simplifiée, légèrement moins précise, mais d'une amplitude inférieure aux octets.
la source