Uma árvore H é uma estrutura de árvore fractal que começa com uma linha. Em cada iteração, T ramificações são adicionadas a todos os pontos de extremidade. Nesse desafio, você precisa criar uma representação ASCII de cada segundo nível da árvore H.
O primeiro nível simplesmente contém três caracteres de hífen-menos:
---
Os próximos níveis são construídos recursivamente:
- Crie uma matriz 2x2 de cópias do nível anterior, separada por três espaços ou linhas.
- Conecte os centros das cópias com linhas de arte ASCII na forma de H. Use
-
para linhas horizontais,|
linhas verticais e+
sempre que as linhas se encontrarem.
Segundo nível
-+- -+-
| |
+-----+
| |
-+- -+-
Terceiro nivel
-+- -+- -+- -+-
| | | |
+--+--+ +--+--+
| | | | | |
-+- | -+- -+- | -+-
| |
+-----------+
| |
-+- | -+- -+- | -+-
| | | | | |
+--+--+ +--+--+
| | | |
-+- -+- -+- -+-
Regras
- A entrada é um número inteiro que representa o nível da árvore H da arte ASCII, conforme descrito acima ( não o nível real da árvore H), com índice zero ou um.
- A saída é flexível. Por exemplo, você pode imprimir o resultado ou retornar uma sequência separada por nova linha, uma lista de sequências para cada linha ou uma matriz 2D de caracteres.
- Você deve usar
-
,|
,+
e caracteres de espaço. - O espaço à direita e até três linhas de espaço em branco à direita são permitidos.
Isso é código de golfe. A resposta mais curta em bytes vence.
Respostas:
Tela ,
2019 bytesExperimente aqui!
Explicação:
fonte
Carvão , 22 bytes
Experimente online! Link é a versão detalhada do código. Indexado a 0. Explicação:
Imprima os três primeiros
-
, deixando o cursor no meio.Repita o procedimento para o número de vezes indicado.
Repita duas vezes para cada um
H
. Cada loop cria um pouco maiorH
do loop anterior, mas queremos apenasH
s alternativos .Gire a figura.
Desenhe metade da próxima linha.
Reflita para concluir a etapa.
O resultado em cada iteração é o seguinte:
fonte
H
parece, uma rápida olhada zoom-out: i.imgur.com/EGapcrS.pngPython 2 , 227 bytes
Experimente online!
fonte
Perl 6 , 118 bytes
Experimente online!
Indexado a 0. Retorna uma matriz 2D de caracteres. A ideia básica é que a expressão
gera o padrão
Explicação
fonte