Ein H-Baum ist eine fraktale Baumstruktur, die mit einer Linie beginnt. In jeder Iteration werden T-Zweige zu allen Endpunkten hinzugefügt. Bei dieser Herausforderung müssen Sie eine ASCII-Darstellung jeder zweiten H-Baumebene erstellen .
Die erste Ebene enthält einfach drei Bindestrich-Minus-Zeichen:
---
Die nächsten Ebenen sind rekursiv aufgebaut:
- Erstellen Sie eine 2x2-Matrix von Kopien der vorherigen Ebene, die durch drei Leerzeichen oder Zeilen getrennt sind.
- Verbinden Sie die Mitten der Kopien mit ASCII-Kunstlinien in Form eines H. Verwenden Sie diese Option
-
für horizontale Linien,|
für vertikale Linien und+
immer dann , wenn Linien aufeinander treffen.
Zweites Level
-+- -+-
| |
+-----+
| |
-+- -+-
Drittes Level
-+- -+- -+- -+-
| | | |
+--+--+ +--+--+
| | | | | |
-+- | -+- -+- | -+-
| |
+-----------+
| |
-+- | -+- -+- | -+-
| | | | | |
+--+--+ +--+--+
| | | |
-+- -+- -+- -+-
Regeln
- Die Eingabe ist eine Ganzzahl, die die oben beschriebene Ebene des ASCII-Art-H-Baums darstellt ( nicht die tatsächliche Ebene des H-Baums), entweder null- oder einsindiziert.
- Die Ausgabe ist flexibel. Sie können beispielsweise das Ergebnis drucken oder eine durch Zeilenumbrüche getrennte Zeichenfolge, eine Liste von Zeichenfolgen für jede Zeile oder ein 2D-Array von Zeichen zurückgeben.
- Sie müssen verwenden
-
,|
,+
und Leerzeichen. - Leerzeichen und bis zu drei Leerzeichen sind zulässig.
Das ist Code Golf. Die kürzeste Antwort in Bytes gewinnt.
Antworten:
Leinwand ,
2019 BytesProbieren Sie es hier aus!
Erläuterung:
quelle
Holzkohle , 22 Bytes
Probieren Sie es online aus! Der Link führt zur ausführlichen Version des Codes. 0-indiziert. Erläuterung:
Drucken Sie die ersten drei
-
Sekunden aus und lassen Sie den Cursor in der Mitte.Wiederholen Sie dies für die angegebene Anzahl von Malen.
Wiederholen Sie dies jeweils zweimal
H
. Jede Schleife erzeugt eine etwas größereH
Schleife aus der vorherigen Schleife, aber wir wollen nur alternativeH
s.Drehen Sie die Figur.
Zeichnen Sie die Hälfte der nächsten Linie.
Überlegen Sie, um den Schritt abzuschließen.
Das Ergebnis bei jeder Iteration ist wie folgt:
quelle
H
aussieht, werfen SiePython 2 , 227 Bytes
Probieren Sie es online aus!
quelle
Perl 6 , 118 Bytes
Probieren Sie es online aus!
0-indiziert. Gibt ein 2D-Array von Zeichen zurück. Die Grundidee ist, dass der Ausdruck
erzeugt das Muster
Erläuterung
quelle