L'image ci-dessus est appelée hexa-glyphe. Les hexa-glyphes sont des modèles sympas que j'ai créés en griffonnant pendant ma classe DiffEq. Voici comment vous en créez un:
- Considérez l'ensemble de points suivant, en forme d'hexagramme régulier. L'hexagone intérieur est ce qui contiendra le glyphe final, tandis que les 6 points extérieurs forment une étoile et c'est là que nous commencerons à dessiner nos lignes.
- À partir des six points extérieurs, sélectionnez au hasard une paire. Pour plus d'efficacité, il devrait y avoir au moins un autre point entre les deux points sélectionnés (sinon, cela n'aurait aucun effet sur le chiffre final). Ensuite, à partir de chacun des deux points, lancez un rayon vers l'autre. Ce rayon est bloqué par les lignes précédentes.
- Répétez ce processus jusqu'à ce que les 9 bords aient été formés, comme le montrent les images suivantes.
- Voici un exemple de rayons bloqués. Les extrémités du segment de rayon sont toujours visibles, mais la partie médiane est occluse par les deux premiers segments que nous avons dessinés.
- Ces deux rayons sont également "bloqués", mais cela ne cause aucune différence visible car ils sont bloqués par la même autre ligne.
- Avance rapide jusqu'à ce que les 9 lignes soient dessinées. Si vous souhaitez une explication plus détaillée de ces étapes ignorées, je peux l'exposer.
- Enfin, supprimez les pointes de l'étoile. Pour le rendre plus joli, les points épais sont également supprimés.
Le défi
Votre défi consiste à produire une représentation visuelle d'un hexaglyphe aléatoire. C'est le code-golf, le moins d'octets gagne.
Tous les hexa-glyphes possibles devraient apparaître avec une certaine probabilité positive. Différents hexaglyphes sont générés en modifiant l'ordre dans lequel les 9 bords sont dessinés.
De plus, toutes les images produites par votre programme doivent être des hexa-glyphes valides. Certains modèles (comme un contour complet de l'hexagone intérieur) ne peuvent pas apparaître comme un hexaglyphe, et vous ne devez donc pas les afficher.
La sortie doit être une image graphique (imprimée à l'écran ou dans un fichier).
L'hexagone doit être régulier, mais peut apparaître dans n'importe quelle orientation.
Les réflexions / rotations ne sont pas considérées comme uniques. (Cela pourrait rendre l'exigence 1 plus facile à suivre).
'01'
avec de l'espace entrelacé au lieu de ' *'
.
I made up while doodling during my DiffEq class
.