Das obige Bild wird als Hexaglyphe bezeichnet. Hexaglyphen sind einige coole Muster, die ich während meiner DiffEq-Klasse erstellt habe. So machst du eins:
- Betrachten Sie die folgenden Punkte, die wie ein reguläres Hexagramm geformt sind. Das innere Sechseck enthält die letzte Glyphe, während die äußeren 6 Punkte einen Stern bilden und dort beginnen, unsere Linien zu zeichnen.
- Wählen Sie aus den äußeren sechs Punkten zufällig ein Paar aus. Aus Effizienzgründen sollte mindestens ein weiterer Punkt zwischen den beiden ausgewählten Punkten liegen (andernfalls hat dies keine Auswirkungen auf die endgültige Zahl). Wirf dann von jedem der beiden Punkte einen Strahl auf den anderen. Dieser Strahl wird durch vorherige Zeilen blockiert .
- Wiederholen Sie diesen Vorgang, bis alle 9 Kanten gebildet wurden, wie in den nächsten Bildern gezeigt.
- Hier ist ein Beispiel für das Blockieren von Strahlen. Die Enden des Strahlsegments sind noch sichtbar, aber der mittlere Teil wird von den ersten beiden Segmenten, die wir gezeichnet haben, verdeckt.
- Diese beiden Strahlen werden ebenfalls "blockiert", dies verursacht jedoch keinen sichtbaren Unterschied, da sie von derselben anderen Linie blockiert werden.
- Schnellvorlauf, bis alle 9 Linien gezeichnet sind. Wenn Sie eine detailliertere Erläuterung dieser übersprungenen Schritte wünschen, kann ich dies erläutern.
- Zum Schluss entfernen Sie die Punkte des Sterns. Damit es schöner aussieht, werden auch die dicken Punkte entfernt.
Die Herausforderung
Sie müssen eine visuelle Darstellung eines zufälligen Hexaglyphen ausgeben. Das ist Code-Golf, die wenigsten Bytes gewinnen.
Alle möglichen Hexaglyphen sollten mit einer positiven Wahrscheinlichkeit erscheinen. Durch Ändern der Reihenfolge, in der die 9 Kanten gezeichnet werden, werden verschiedene Hexaglyphen erzeugt.
Außerdem müssen alle von Ihrem Programm ausgegebenen Bilder gültige Hexaglyphen sein. Bestimmte Muster (z. B. ein vollständiger Umriss des inneren Sechsecks) können möglicherweise nicht als Hexaglyphen dargestellt werden. Sie dürfen diese also nicht ausgeben.
Die Ausgabe sollte ein grafisches Bild sein (auf dem Bildschirm oder in einer Datei gedruckt).
Das Sechseck muss regelmäßig sein, kann aber in beliebiger Ausrichtung erscheinen.
Reflexionen / Rotationen werden nicht als einzigartig angesehen. (Dies könnte die Einhaltung von Anforderung 1 erleichtern.)
'01'
von Space Interleaved anstelle von ' *'
.
I made up while doodling during my DiffEq class
. So geschehen alle großen Entdeckungen ...: P