Schreiben Sie ein Programm oder eine Funktion, die eine nicht leere Liste von ganzen Zahlen in einem angemessenen Format wie 4, 0, -1, -6, 2
oder enthält [4 0 -1 -6 2]
.
Drucken Sie eine Zeichenfolge, die die Liste als ASCII-Gesamtstruktur darstellt, oder geben Sie sie zurück, wobei jede Zahl zu einem Baum proportionaler Höhe wird. Jeder Baum nimmt wie folgt vier Textspalten in der Ausgabe auf:
Eine positive ganze Zahl N wird zu einem Baum, dessen Basis
__|_
und Spitze^
N Schichten/ \
dazwischen haben.Wenn beispielsweise N = 1 ist, ist der Baum
^ / \ __|_
wenn N = 2 ist, ist der Baum
^ / \ / \ __|_
wenn N = 3 ist, ist der Baum
^ / \ / \ / \ __|_
und so weiter.
Eine negative ganze Zahl N wird genau wie der entsprechende positive Baum, außer dass ein vertikaler Strich zwischen den Verzweigungsschrägstrichen anstelle eines Leerzeichens steht.
Wenn beispielsweise N = -1 ist, ist der Baum
^ /|\ __|_
wenn N = -2 ist der Baum
^ /|\ /|\ __|_
wenn N = -3 ist der Baum
^ /|\ /|\ /|\ __|_
und so weiter.
Wenn die Ganzzahl 0 ist, gibt es technisch gesehen keinen Baum, nur eine leere Stelle mit vier Unterstrichen:
____
Die Unterstriche an der Basis jedes Baums müssen in der Ausgabe ausgerichtet sein, dh alle Bäume müssen ihre Basis auf derselben Ebene haben. Außerdem wird nach dem letzten Baum ein einzelner Unterstrich am Ende der Zeile mit Unterstrichen eingefügt. Dies macht es so, dass jeder Baum eine leere Luftsäule auf beiden Seiten hat.
Als Beispiel 4 0 -1 -6 2
wäre die Ausgabe für
^
/|\
^ /|\
/ \ /|\
/ \ /|\ ^
/ \ ^ /|\ / \
/ \ /|\ /|\ / \
__|_______|___|___|__
Beachten Sie, dass die Baummuster immer eine führende Spalte mit leerem Raum haben, aber ein Unterstrich hinzugefügt werden musste, um die rechte Seite des letzten Baums aufzufüllen.
Ebenfalls:
- Nachgestellte Leerzeichen in allen Zeilen sind in Ordnung, es sollten jedoch keine unnötigen führenden Leerzeichen vorhanden sein.
- Führende Zeilenumbrüche sind nicht zulässig (der höchste Baum sollte den oberen Rand des Ausgabetextgitters berühren), und es ist nur eine abschließende Zeile zulässig.
- Die Liste kann ganze Zahlen von -250 bis 250 enthalten. Der Umgang mit höheren Bäumen ist nicht erforderlich.
Der kürzeste Code in Bytes gewinnt.
Mehr Beispiele
3
:
^
/ \
/ \
/ \
__|__
-2
:
^
/|\
/|\
__|__
0
:
_____
0, 0
:
_________
0, 1, 0
:
^
/ \
______|______
0, -1, 2, -3, 4
:
^
^ / \
^ /|\ / \
^ / \ /|\ / \
/|\ / \ /|\ / \
______|___|___|___|__
_
nach dem letzten Baum einen abschließenden (Unterstrich) einzufügen.