A imagem acima é chamada de hexa-glifo. Hexa-glifos são alguns padrões legais que eu criei enquanto rabiscava durante minha aula DiffEq. Aqui está como você faz um:
- Considere o seguinte conjunto de pontos, em forma de um hexagrama regular. O hexágono interno é o que conterá o glifo final, enquanto os 6 pontos externos formam uma estrela e são onde começaremos a desenhar nossas linhas.
- Dos seis pontos externos, selecione aleatoriamente um par. Por questões de eficiência, deve haver pelo menos um outro ponto entre os dois pontos selecionados (caso contrário, isso não afetaria o valor final). Então, de cada um dos dois pontos, lance um raio na direção do outro. Este raio está bloqueado pelas linhas anteriores.
- Repita esse processo até que todas as 9 arestas tenham sido formadas, conforme mostrado nas próximas imagens.
- Aqui está um exemplo de raios sendo bloqueados. As extremidades do segmento de raio ainda são visíveis, mas a porção do meio é ocluída pelos dois primeiros segmentos que desenhamos.
- Esses dois raios também são "bloqueados", mas isso não causa nenhuma diferença visível porque eles são bloqueados pela mesma outra linha.
- Avanço rápido até que todas as 9 linhas sejam desenhadas. Se você quiser uma explicação mais detalhada sobre essas etapas ignoradas, posso explicar.
- Por fim, remova os pontos da estrela. Para torná-la mais bonita, os pontos grossos também são removidos.
O desafio
Seu desafio é gerar uma representação visual de um hexa-glifo aleatório. Isso é código-golfe, o menor número de bytes vence.
Todos os hexa-glifos possíveis devem aparecer com alguma probabilidade positiva. Diferentes hexa-glifos são gerados alterando a ordem em que as 9 arestas são desenhadas.
Além disso, todas as imagens geradas pelo seu programa devem ser hexa-glifos válidos. Certos padrões (como um esboço completo do hexágono interno) não podem aparecer como um hexa-glifo e, portanto, o programa não deve ser emitido.
A saída deve ser uma imagem gráfica (impressa em tela ou arquivo).
O hexágono deve ser regular, mas pode aparecer em qualquer orientação.
Reflexões / rotações não são consideradas únicas. (Isso pode facilitar o cumprimento do requisito 1).
'01'
espaço intercalado em vez de ' *'
.
I made up while doodling during my DiffEq class
. A maneira como todas as grandes descobertas acontecem ...: P