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.
Réponses:
Toile ,
2019 octetsEssayez-le ici!
Explication:
la source
Fusain , 22 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. 0 indexé. Explication:
Imprimez les trois premiers
-
s en laissant le curseur au milieu.Répétez l'opération pour le nombre de fois indiqué.
Répétez deux fois pour chacun
H
. Chaque boucle crée un peu plus grand queH
la boucle précédente, mais nous voulons seulement desH
s alternatifs .Faites pivoter la figure.
Tracez la moitié de la ligne suivante.
Réfléchissez pour terminer l'étape.
Le résultat à chaque itération est le suivant:
la source
H
, un coup d'œil rapide sur le zoom: i.imgur.com/EGapcrS.pngPython 2 , 227 octets
Essayez-le en ligne!
la source
Perl 6 , 118 octets
Essayez-le en ligne!
0 indexé. Renvoie un tableau 2D de caractères. L'idée de base est que l'expression
génère le motif
Explication
la source