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.