Un arbre H est une structure d'arbre fractal qui commence par une ligne. À chaque itération, des branches T sont ajoutées à tous les points de terminaison. Dans ce défi, vous devez créer une représentation ASCII de chaque deuxième niveau d'arbre H.
Le premier niveau contient simplement trois caractères de trait d'union moins:
---
Les niveaux suivants sont construits récursivement:
- Créez une matrice 2x2 de copies du niveau précédent, séparées par trois espaces ou lignes.
- Reliez les centres des copies avec des lignes artistiques ASCII sous la forme d'un H. À utiliser
-
pour les lignes horizontales,|
pour les lignes verticales et+
chaque fois que les lignes se rencontrent.
Deuxième niveau
-+- -+-
| |
+-----+
| |
-+- -+-
Troisième niveau
-+- -+- -+- -+-
| | | |
+--+--+ +--+--+
| | | | | |
-+- | -+- -+- | -+-
| |
+-----------+
| |
-+- | -+- -+- | -+-
| | | | | |
+--+--+ +--+--+
| | | |
-+- -+- -+- -+-
Règles
- L'entrée est un entier représentant le niveau de l'arbre H ASCII art tel que décrit ci-dessus ( pas le niveau réel de l'arbre H), soit zéro soit un indexé.
- La sortie est flexible. Par exemple, vous pouvez imprimer le résultat ou renvoyer une chaîne séparée par des sauts de ligne, une liste de chaînes pour chaque ligne ou un tableau 2D de caractères.
- Vous devez utiliser
-
,|
,+
et des espaces. - L'espace de fin et jusqu'à trois lignes d'espace de fin sont autorisés.
C'est le golf de code. La réponse la plus courte en octets l'emporte.