Étant un grand fan du Rubik's cube et de l'art cool, j'ai travaillé sur la combinaison des deux pour faire des trucs vraiment cool. Fondamentalement, la résolution de cubes Rubik miniatures pour former des pixels rudimentaires dans la formation de l'art du cube Rubik. Des exemples d'un tel art peuvent être vus via ce lien: http://google.com/search?q=rubik%27s+cube+art
Maintenant, le but de ce Code Golf est de créer du code qui accepte une image en entrée, puis la convertit de la manière suivante:
L'image est initialement réduite à des couleurs de niveaux de gris adaptées au Web. Cela s'explique par le fait que nous devons isoler la palette de niveaux de gris sécurisée pour le Web (par exemple 000000, 333333, 666666, 999999, CCCCCC et FFFFFF). Un algorithme sur la méthode colorimétrique de conversion en niveaux de gris est disponible à: http://en.wikipedia.org/wiki/Grayscale#Colorimetric_.28luminance-preserving.29_conversion_to_grayscale , si vous souhaitez utiliser cela comme source d'inspiration.
On pourrait alors rendre l'échelle de gris aux couleurs appropriées. Pour le décomposer rapidement: 000000 fera référence au bleu Rubik, 333333 fera référence au rouge Rubik, 666666 fera référence au vert Rubik, 999999 fera référence à l'orange Rubik, CCCCCC fera référence au jaune Rubik et FFFFFF fera référence au blanc Rubik.
Je préférerais que votre code résultant puisse être rendu directement de la palette de la photo aux couleurs de Rubik. La méthode en deux étapes de conversion en niveaux de gris sécurisés pour le Web, puis dans la palette Rubik correspondante, est juste pour vous donner une idée de la logique derrière le processus, mais si cela est plus facile pour vous, faites-le par tous les moyens.
Les valeurs RVB réelles pour la palette de Rubik doivent correspondre à ce qui suit:
- Rouge: # C41E3A
- Vert: # 009E60
- Bleu: # 0051BA
- Orange: # FF5800
- Jaune: # FFD500
- Blanc: #FFFFFF
Pour vous donner un exemple, j'ai recadré la tête d'Abraham Lincoln à partir de l'image suivante:, et rendu l'algorithme pour produire ce qui suit:
La grille est là pour que vous puissiez voir comment chaque cube Rubik miniature individuel devrait être configuré pour constituer l'image. La taille réelle de l'image résultante est de 45 pixels par 45 pixels, ce qui signifie que (45/3) * (45/3) = 15 * 15 = 225 cubes Rubik miniatures seraient utilisés pour créer cette image. Je ne m'attends pas à ce que vous présentiez l'image résultante avec une grille comme je l'ai fait.
Voici donc ce qui est requis:
L'image à traiter par cet algorithme doit avoir une largeur de x pixels par une hauteur de y pixels, de telle sorte que x et y soient des multiples de 3. Ceci facilite la rendu dans le cadre d'une mosaïque de cubes Rubik. Si votre image est assez grande, il est conseillé de la réduire à environ 45 x 45 à 75 x 75 ou environ en dimensions avant le traitement. Gardez à l'esprit que ce composant de redimensionnement est FACULTATIF.
L'image doit être convertie en la palette de cubes Rubik de sextacolored pour créer la mosaïque.
L'image résultante doit être un fichier graphique valide après le traitement. Pour prouver que votre code fonctionne, exécutez-le contre une image de l'un des présidents des États-Unis d'Amérique ou d'une célébrité hollywoodienne bien connue. J'ai déjà utilisé Abraham Lincoln dans mon exemple, donc ce président ne peut plus être utilisé. Assurez-vous de fournir la langue que vous avez utilisée, le nombre d'octets ainsi que le président / célébrité utilisé pour tester votre code, y compris avant et après les prises de vue ...
Chaque entrée doit avoir un président / célébrité unique comme cas de test. Je n'accepterai pas de doublons. Cela garantira que les résultats en double ne sont pas utilisés pour tester différentes entrées de code. C'est très bien de dire que votre code fonctionne, c'est une autre chose de le prouver.
5. Le code le plus court gagne.
Je change cela en un concours de popularité ... Je préfère voir qui peut le faire sans avoir à rivaliser sur le nombre d'octets ... Je vais donc l'attribuer avec une prime après le 28 février 2014.
#000000 => #0051BA
, etc.