Voici cinq images de poires et d'une goulotte en acier :
Ce ne sont que des vignettes, cliquez dessus pour les agrandir!
Cette classe d'images a toujours les propriétés suivantes:
- Ils sont toujours 400 × 400 pixels avec un fond blanc. (Il peut ne pas être exactement blanc car les images SE sont compressées avec perte.)
- Ils ont 1 à 4 poires identiques, chacune tournée et positionnée (presque) de n'importe quelle façon.
- Ils ont une goulotte verticale en acier qui atteint le bas de l'image.
- Autre que le fond de la goulotte, la goulotte et les boîtes de délimitation de poire ( exemple de boîte de délimitation ) ne touchent ni ne sortent jamais des limites de l'image.
- Les boîtes englobantes des poires ne se chevauchent jamais ni ne chevauchent la goulotte.
- Les poires peuvent être sous la partie inclinée de la goulotte, comme en B , C et D . (Ainsi, la boîte englobante de la goulotte peut chevaucher la boîte englobante d'une poire.)
- La goulotte peut avoir n'importe quelle position horizontale et verticale tant qu'il y a suffisamment de place pour que toutes les boîtes de délimitation des poires puissent s'ajuster librement au-dessus (aucun cas "à peine ajusté" ne sera testé) et qu'une partie de la partie de colonne est visible.
Défi
Écrivez un programme qui prend une telle image et produit une autre image 400 × 400 avec la goulotte au même endroit, mais avec les poires repositionnées de sorte qu'elles soient toutes au-dessus de la goulotte (afin qu'elles puissent y tomber et être pressées et ainsi de suite).
Les exigences pour l'image de sortie sont:
- Toutes les poires de l'image d'entrée doivent être repositionnées de sorte qu'elles soient au-dessus de la goulotte, entre les bords gauche et droit de son entonnoir. (Au-dessus d'un bord n'est pas correct.)
- Chaque poire doit conserver son angle de rotation. (Vous devriez donc couper et coller les poires, pas les redessiner.)
- Les poires ne doivent pas se chevaucher ni se toucher ni la goulotte. (La poire boîtes de délimitation de peuvent cependant se chevaucher.)
- Les poires ne doivent pas toucher ni sortir des limites de l'image.
Voici des exemples de sorties valides pour les cinq exemples d'images:
Ce ne sont que des vignettes, cliquez dessus pour les agrandir!
Notez que l'image d'entrée pour E était déjà une sortie valide, mais réorganiser les poires lorsqu'elles ne sont pas techniquement nécessaires est très bien.
Détails
- Prenez le nom de fichier de l'image ou les données d'image brutes via stdin / ligne de commande / appel de fonction.
- Exportez l'image dans un fichier avec le nom de votre choix ou exportez les données brutes du fichier image vers stdout ou affichez simplement l'image.
- Tout format de fichier d'image sans perte commun peut être utilisé.
- Des graphiques et des bibliothèques d'images peuvent être utilisés.
- Quelques pixels incorrects ici et là (en raison d'une perte ou de quelque chose) ne sont pas un gros problème. Si je ne peux pas dire que quelque chose ne va pas visuellement, alors ça va probablement.
Le code le plus court en octets gagne. Tiebreaker est le poste le plus voté.
la source
Réponses:
Python 2.7, 636 octets
ÉDITER : supprime maintenant le canal alpha avant de manipuler l'image et aligne les poires sur plusieurs lignes si nécessaire
Images produites:
et avec des poires verticales (cela prend environ 3 minutes sur mon ordinateur):
la source