Ihre Herausforderung: Machen Sie einen Weihnachtsbaum. Die Größe muss durch eine Eingabemethode wählbar sein, muss aber nicht direkt mit einem Teil des Baums zusammenhängen. Größere Eingaben sollten jedoch einen größeren Baum erzeugen.
Wie kannst du es schaffen? Sie können den Baum jede mögliche Weise machen Sie andere mögen, als durch den Druck der Unicode - Zeichen für den Baum , wie ouputting ein Bild, ascii Kunst, mit anderen Aspekten, usw. Was immer Sie tun, denken Sie daran , dass dies eine ist popularity-contest , so Seien Sie kreativ.
Die Antwort mit den meisten positiven Stimmen bis Ende Dezember gewinnt, aber ich akzeptiere eine andere, wenn sie höher wird
popularity-contest
Justin
quelle
quelle
Antworten:
Python
Ein fraktaler Weihnachtsbaum mit dem Schildkrötenpaket:
n ist der Größenparameter, der gezeigte Baum ist für n = 50. Das Zeichnen dauert ein oder zwei Minuten.
quelle
:)
JavaScript
Zeigen Sie den animierten Baum online an .
quelle
Ein weiterer Mathematica / Wolfram-Sprachbaum , der auf Vitaliys Antwort basiert :
quelle
Javascript
Dies ist mein erster Code Golf!
Es kommt bei 295 Zeichen.
Die Größe und Dekoration des Baumes wird durch die Variablen a, b, c festgelegt:
Es sieht am besten aus, wenn a ein Vielfaches von b ist, wie im Beispiel.
In die Konsole einfügen, um einen Baum zu erstellen. Sieht von weitem besser aus!
quelle
a=40,b=8,c=13,o="<p style='font:monospace;color:#094' align='center'>",w=1,x=0,y="|#|<br>";for(i=1;i<a;i++){for(j=0;j<w;j++){x%c==0?o+="<b style='color:red'>O</b>":o+="+";x++;}i%b==0?w-=4:w+=2;o+="<br>";}document.write(o+"<b style='color:#640'>"+y+y+y+"</b></p>");
doc.write
? Nein +1 von mir.C ++
Machen wir es im Geiste von IOCCC und haben den Code auch in Form eines Baumes! : D
Nimmt eine Ganzzahl als Eingabe und gibt einen Weihnachtsbaum mit so vielen "Stapelebenen" zurück. Zum Beispiel eine Eingabe von
Kehrt zurück:
quelle
*
am oberen Rand des Baums (Quellcode) setzen, haben Sie meine +1.Javascript
Quasirealistic völlig prozeduraler Tannenbaumgenerator 3D.
Features: Umfangreiche Konfiguration mit noch mehr Konfigurationsoptionen im Code; ein zickzackförmiger Kofferraum; verzweigte Zweige; Wachstumsanimation; Rotation eines ausgewachsenen Baumes.
Nicht enthalten: jQuery, Underscore.js oder eine andere Bibliothek; Hardware-Abhängigkeit - nur Canvas-Unterstützung erforderlich; chaotischer Code (zumindest war das die Absicht)
Liveseite: http://fiddle.jshell.net/honnza/NMva7/show/
Seite bearbeiten: http://jsfiddle.net/honnza/NMva7/
Bildschirmfoto:
HTML:
Javascript:
quelle
Bash
Beispielausgabe:
Die Baumgröße (dh die Anzahl der Zeilen) wird in der Befehlszeile übergeben und ist auf Werte von 5 oder mehr beschränkt. Das obige Bild wurde aus dem Befehl erstellt
./xmastree.sh 12
. Hier ist der Quellcode:quelle
Haftungsausschluss: Dies basiert auf meinem LaTeX-Weihnachtsbaum, der zuerst hier veröffentlicht wurde: https://tex.stackexchange.com/a/87921/8463
Der folgende Code generiert einen Chrismtas-Baum mit zufälligen Verzierungen. Sie können sowohl die Größe des Baums als auch den zufälligen Startwert ändern, um einen anderen Baum zu generieren.
Um den Startwert zu ändern, ändern Sie den Wert in
\pgfmathsetseed{\year * 6}
einem beliebigen anderen numerischen Wert (der Standardwert generiert jedes Jahr einen neuen Baum).Um die Größe des Baums zu ändern, ändern Sie den Wert so
order=10
, dass er je nach Größe des gewünschten Baums entweder größer oder kleiner ist.Beispiele.
order=11
:order=8
quelle
Befunge 93
Dies ist ein nicht dekorierter Baum:
Beispielausgabe, Eingabe ist 10:
Lassen Sie uns einige Dekorationen hinzufügen:
Beispielausgabe:
quelle
HTML und CSS
Größen zwischen 1 und 25 werden unterstützt - fügen Sie einfach die Größe als Fragment-ID zur URL hinzu.
Funktioniert in Chrome, Explorer und Firefox. In Opera ist das hässlich, aber der Skalierungsteil funktioniert.
Beispielzugriff:
Beispielzugriff:
Liveübertragung:
http://dabblet.com/gist/8026898
(Die Live-Ansicht enthält kein vom Anbieter vorangestelltes CSS und enthält Links zum Ändern der Größe.)
quelle
:target
, die Ausgabe zu skalieren :-)Java
Um die Größe zu ändern, ändern Sie sie
scale
in einen anderen doppelten Wert (belassen Sie ihn bei 1, wenn Sie etwas sehen möchten).Beispielausgabe (für 1.0 als Maßstab zu faul, um einen Screenshot zu machen, also einfach posten, was es tut):
Das Programm nimmt dieses Bild aus dem Internet, ändert die Größe entsprechend
scale
und legt es dann in einem nicht dekorierten Fenster ab, in dem es angezeigt wird. Durch Klicken auf das Fenster wird das Programm geschlossen. Der QuickInfo-Text ist ebenfalls vorhanden, der Link jedoch nicht.quelle
TI-89 Basic
Nur weil ich einen Weihnachtsbaum auf meinem Taschenrechner sehen wollte. Ich werde es hier so eingeben, wie es auf meinem Taschenrechner erscheint.
Dies funktioniert genauso wie meine Befunge-Antwort, aber ich verwende andere Ornamente. Ja,
elementAt
die wiederholten Verwendungen meiner Funktion verlangsamen das Programm aufgrund vieler Konvertierungen zwischen Listen und Matrizen, aber wie ich es zuvor geschrieben habe, habe ich mich gegen eine Bearbeitung entschieden. Außerdem habe ich beim Schreiben dieser Antwort gelernt,©
die einen Kommentar enthält (ich dachte, es sieht so aus@
, aber das ist ein anderes Zeichen). Ich wusste vorher nie, was es war.Beispielausgabe:
Ich liebe die
∫
; Sie sehen aus wie Zuckerstangen.quelle
Wolfram-Sprache ( Mathematica )
Wie im berühmten Reddit-Thread besprochen: t * sin (t) ≈ Weihnachtsbaum
quelle
t*sin(t)
wie ich in dem Beitrag sagte. Wenn Sie also nach größerenTable[..., {t, 0, 200, PD}]
Bash mit Bc und ImageMagick
Probelauf:
Beispielausgabe:
Probelauf:
Beispielausgabe:
quelle
C
Beispielausgabe für Tiefe = 4, Zoom = 2,0
Diese Antwort verwendet einen ganz anderen Ansatz als andere Antworten. Durch rekursives Verzweigen wird eine Baumstruktur erzeugt. Jeder Zweig wird durch eine Reihe von Kreisen dargestellt. Und schließlich tastet die Hauptfunktion die Kreise ab und füllt sie mit Zeichen, wenn Kreise getroffen werden. Da es durch Abtasten einer Szene (wie Raytracing) erfolgt, ist es in sich skalierbar. Der Nachteil ist die Geschwindigkeit, da sie für jedes "Pixel" die gesamte Baumstruktur durchläuft!
Das erste Befehlszeilenargument steuert die Tiefe der Verzweigung. Und die zweite Kontrollskala (2 bedeutet 200%).
quelle
Mathematica ASCII
Ich mag ASCII-Kunst sehr, deshalb füge ich noch eine ganz andere Antwort hinzu - vor allem, weil sie in Mathematica so kurz ist:
Und jetzt mit etwas mehr Raffinesse ein skalierbarer dynamischer ASCII-Baum. Pass gut auf - der Baum verändert sich auch - Schnee klebt an Ästen und fällt dann ;-)
quelle
Table
's Parameter?Ich habe dies für eine Herausforderung an / r / dailyprogrammer gemacht (nicht sicher, ob die Wiederverwendung von Code gegen den Geist / die Regeln dieses Artikels verstößt ), aber:
Brainfuck. Nimmt als Eingabe eine Zahl (Länge der unteren Blattreihe) und zwei Zeichen. Ein Leerzeichen dazwischen.
Beispieleingabe: 13 = +
Beispielausgabe:
Code:
quelle
wird bearbeitet
Der ursprüngliche Fractal Weihnachtsbaum. Die Y-Position der Maus bestimmt die Größe. Verwenden Sie die Aufwärts- und Abwärtspfeiltasten, um die Anzahl der Generationen zu ändern.
quelle
Rubin
Sie können die Ausgabe durch Ändern anpassen
*
.Für einen grünen Baum:
((1..20).to_a+[6]*4).map{|i|puts "\e[32m"+('*'*i*2).center(80)}
Ansatz 2 (Weihnachtsbaum, der nicht wie ein Pfeil aussieht)
Ansatz 3
quelle
1..20
,1..6
usw.Schildkröte-Grafiken
Basiert auf Eigenschaften der Eulerspirale .
Code:
Die Skala wird durch die Schrittweite (
move forward by: 6
) bestimmt. Eine interaktive Version finden Sie hier .PS Inspiriert von dieser Frage.
quelle
move forward by 6
. Beispielsweise10
wird ein größerer Baum erzeugt. Tatsächlich gibt es in dieser "Sprache" keine Eingabe (oder der gesamte Code kann als Eingabe behandelt werden;)).wird bearbeitet
Ich habe diesen Baumgenerator mit einem L-System und einer Schildkröte gemacht.
Code:
quelle
JavaScript (kann auf jeder Seite der Konsole ausgeführt werden)
Ich habe das Golf gespielt, mich dann aber dagegen entschieden, so wie Sie sehen können, gibt es Tonnen magischer Zahlen: P
Ergebnis für s = 300:
s = 600:
quelle
Game Maker-Sprache
spr_tree
Das Erstellungsereignis des Baums
Zimmer 402 von 599
Der Baum steht bei
(0,0)
Bonus! Sie können die Größe des Weihnachtsbaums nach der ersten Eingabe mit den Tasten 0-9 ändern.
quelle
AppleScript + SE Antwort
Hat dies tatsächlich versehentlich aufgenommen, während eine Antwort in dieser Frage bearbeitet wurde. Stelle dir das vor.
Führen Sie dazu den Code aus, geben Sie die gewünschte Nummer ein, streichen Sie zum SE-Post und klicken Sie in das Textfeld. Dies nutzt die Tatsache aus, dass Anführungszeichen stapeln.
Ausgang (Eingang 50):
quelle
Verzierter FORTRAN-Baum
Der Baum hat einen begrenzten Größenbereich, aber es wird angenommen, dass er das Leben der meisten Weihnachtsbäume genau widerspiegelt.
Vom Säuglingsbaum:
Zum jugendlichen Baum:
Für Erwachsene:
quelle
Java
Beispielergebnisse:
Größe = 3:
Größe = 4:
Größe = 5:
Größe = 12:
Größe = 20:
quelle
Rebol
Mit einem Dialekt, um die Symbole anzuzeigen. Um die Baumgröße zu ändern, ändern Sie einfach den Parameter von
make-tree
.quelle
tree
Block zu ändern . Sie können die Größe ändern oder einige der Symbole nach Belieben ändern.Python
quelle
Ti-Basic 84
Fragt nach einer Größe:
Ausgabe (Größe 1):
quelle