Powyższy obraz nazywa się glifem heksa. Heksa-glify to kilka fajnych wzorów, które wymyśliłem podczas gry w DiffEq. Oto, jak to zrobić:
- Rozważ następujący zestaw punktów w kształcie zwykłego heksagramu. Wewnętrzny sześciokąt będzie zawierał ostatni glif, podczas gdy zewnętrzne 6 punktów tworzy gwiazdę i tam zaczynamy rysować nasze linie.
- Z zewnętrznych sześciu punktów losowo wybierz parę. Aby uzyskać wydajność, między dwoma wybranymi punktami powinien znajdować się co najmniej jeden inny punkt (w przeciwnym razie nie miałoby to wpływu na ostateczną liczbę). Następnie z każdego z dwóch punktów skieruj promień w kierunku drugiego. Promień ten jest blokowany przez poprzednie linie.
- Powtarzaj ten proces, aż utworzy się wszystkie 9 krawędzi, jak pokazano na kilku następnych obrazach.
- Oto przykład blokowania promieni. Końce segmentu promienia są nadal widoczne, ale środkowa część jest zasłonięta przez dwa pierwsze narysowane segmenty.
- Te dwa promienie są również „blokowane”, ale nie powoduje to widocznej różnicy, ponieważ są blokowane przez tę samą drugą linię.
- Szybkie przewijanie do momentu narysowania wszystkich 9 linii. Jeśli chcesz uzyskać bardziej szczegółowe wyjaśnienie pominiętych kroków, mogę wyjaśnić.
- Na koniec usuń punkty gwiazdy. Grube kropki są również usuwane, aby wyglądać ładniej.
Wyzwanie
Wyzwanie polega na wygenerowaniu wizualnej reprezentacji losowego glifu heksa. To jest golf golfowy, wygrywa najmniej bajtów.
Wszystkie możliwe glify heksowe powinny pojawić się z pewnym prawdopodobieństwem dodatnim. Różne hex-glify są generowane przez zmianę kolejności rysowania 9 krawędzi.
Ponadto wszystkie obrazy wyprowadzane przez Twój program muszą być poprawnymi glifami hexa. Pewne wzory (jak kompletny zarys wewnętrznego sześciokąta) nie mogą pojawić się jako glif heksowy, więc program nie może ich wyprowadzać.
Wyjście powinno być obrazem graficznym (wydrukowanym do ekranu lub pliku).
Sześciokąt musi być regularny, ale może pojawiać się w dowolnej orientacji.
Odbicia / obroty nie są uważane za wyjątkowe. (Może to ułatwić spełnienie wymagania 1).
'01'
z przeplotem zamiast ' *'
.
I made up while doodling during my DiffEq class
. Sposób, w jaki dzieją się wszystkie wielkie odkrycia ...: P