Twoje wyzwanie: Zrób choinkę. Rozmiar musi być możliwy do wyboru za pomocą dowolnej metody wprowadzania, ale nie musi być bezpośrednio związany z żadną częścią drzewa; jednak większe nakłady powinny dawać większe drzewo.
Jak możesz to zrobić? Możesz zrobić drzewo w dowolny sposób, poza drukowaniem znaku Unicode dla drzewa , takiego jak przesłanie obrazu, grafika ascii, z innymi aspektami itp. Cokolwiek robisz, pamiętaj, że jest to konkurs popularności , więc bądź kreatywny.
Odpowiedź z największą liczbą głosów pozytywnych do końca grudnia wygrywa, ale zaakceptuję inną, jeśli będzie wyższa
popularity-contest
Justin
źródło
źródło
Odpowiedzi:
Pyton
Fraktalna choinka z pakietem żółwia:
n jest parametrem wielkości, pokazane drzewo jest dla n = 50. Narysowanie zajmuje minutę lub dwie.
źródło
:)
JavaScript
Pokaż animowane drzewo online .
źródło
Jeszcze jedno drzewo języka Mathematica / Wolfram oparte na odpowiedzi Vitaliya :
źródło
JavaScript
To jest mój pierwszy golfowy kod!
Występuje w 295 postaciach.
Rozmiar i dekoracja drzewa jest ustalana przez zmienne a, b, c:
Najlepiej wygląda, gdy a jest wielokrotnością b, jak w przykładzie.
Wklej do konsoli, aby utworzyć drzewo. Z daleka wygląda lepiej!
źródło
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
? Brak +1 ode mnie.C ++
Zróbmy to w duchu IOCCC i nadajmy kod również kształtowi drzewa! :RE
Pobiera na wejściu liczbę całkowitą i zwraca choinkę z tyloma „poziomami stosu”. Na przykład wejście
Zwroty:
źródło
*
na górze drzewa (kod źródłowy), będziesz miał moje +1.JavaScript
Quasirealistyczny w pełni 3D proceduralny generator jodły.
Zawiera: rozbudowaną konfigurację z jeszcze większą liczbą opcji konfiguracyjnych obecnych w kodzie; zygzakowaty pień; gałęzie rozgałęzione; animacja wzrostu; obrót w pełni dorosłego drzewa.
Nie zawiera: jQuery, Underscore.js ani żadnej innej biblioteki; zależność sprzętowa - wymagana jest tylko obsługa obszaru roboczego; niechlujny kod (przynajmniej taka była intencja)
Strona na żywo: http://fiddle.jshell.net/honnza/NMva7/show/
Edytuj stronę: http://jsfiddle.net/honnza/NMva7/
zrzut ekranu:
HTML:
JavaScript:
źródło
Grzmotnąć
Przykładowe dane wyjściowe:
Rozmiar drzewa (tj. Liczba linii) jest przekazywany w wierszu poleceń i jest ograniczony do wartości 5 lub większych. Powyższy obraz został utworzony z polecenia
./xmastree.sh 12
. Oto kod źródłowy:źródło
Oświadczenie: oparte jest na mojej choince LaTeX, po raz pierwszy opublikowanej tutaj: https://tex.stackexchange.com/a/87921/8463
Poniższy kod wygeneruje drzewo chrismtas z losowymi dekoracjami. Możesz zmienić zarówno rozmiar drzewa, jak i losowe ziarno, aby wygenerować inne drzewo.
Aby zmienić ziarno, zmodyfikuj wartość wewnątrz
\pgfmathsetseed{\year * 6}
na dowolną inną wartość liczbową (domyślna będzie generować nowe drzewo co roku)Aby zmienić rozmiar drzewa, zmień
order=10
go na większy lub mniejszy w zależności od rozmiaru drzewa, które chcesz.Przykłady
order=11
:order=8
źródło
Befunge 93
To jest drzewo bez dekoracji:
Przykładowe wyjście, wejście to 10:
Dodajmy dekoracje:
Przykładowe dane wyjściowe:
źródło
HTML i CSS
Obsługiwane są rozmiary od 1 do 25 - wystarczy dodać rozmiar do adresu URL jako identyfikator fragmentu.
Działa w Chrome, Explorer i Firefox. W Operze jest brzydka, ale część skalująca działa.
Przykładowy dostęp:
Przykładowy dostęp:
Na żywo:
http://dabblet.com/gist/8026898
(Podgląd na żywo nie zawiera CSS z prefiksem dostawcy i zawiera łącza do zmiany rozmiaru.)
źródło
:target
do skalowania wyjścia :-)Jawa
Aby zmienić rozmiar, zmień
scale
na inną podwójną wartość (pozostaw około 1, jeśli chcesz coś zobaczyć).Przykładowe dane wyjściowe (dla skali 1.0, zbyt leniwe, aby zrobić zrzut ekranu, więc właśnie opublikowałem, co robi):
Program pobiera ten obraz z Internetu, zmienia jego rozmiar zgodnie z
scale
, a następnie umieszcza go w nie ozdobionym oknie, w którym jest wyświetlany. Kliknięcie okna zamyka program. Jest też tekst podpowiedzi, ale nie ma linku.źródło
TI-89 Basic
Tylko dlatego, że chciałem zobaczyć choinkę na moim kalkulatorze. Wpiszę go tutaj, jak pojawia się na moim kalkulatorze.
Działa to tak samo, jak moja odpowiedź Befunge, ale używam różnych ozdób. Tak,
elementAt
wielokrotne użycie mojej funkcji spowalnia program z powodu wielu konwersji między listami i macierzami, ale jak już to napisałem, postanowiłem go nie edytować. Nauczyłem się także podczas pisania tej odpowiedzi, która©
tworzy komentarz (myślałem, że to wygląda@
, ale to inna postać). Nigdy wcześniej nie wiedziałem, co to jest.Przykładowe dane wyjściowe:
Kocham te
∫
; wyglądają jak cukierki.źródło
Wolfram Language ( Mathematica )
Jak omówiono w słynnym wątku Reddit: t * sin (t) tree Choinka
źródło
t*sin(t)
jak powiedziałem w poście. Tak więc wykreślanie większych t stworzy większe drzewo:Table[..., {t, 0, 200, PD}]
Bash z Bc i ImageMagick
Przykładowy przebieg:
Przykładowe dane wyjściowe:
Przykładowy przebieg:
Przykładowe dane wyjściowe:
źródło
do
Przykładowe dane wyjściowe dla głębokości = 4, zoom = 2,0
Ta odpowiedź wykorzystuje podejście zupełnie inne niż inne odpowiedzi. Generuje strukturę drzewa poprzez rekurencyjne rozgałęzianie. Każda gałąź jest reprezentowana przez zestaw kół. I na koniec główna funkcja próbkuje koła i wypełnia się znakami, gdy koła są spełnione. Ponieważ odbywa się to przez próbkowanie sceny (np. Śledzenie promieni), jest ono samoistnie skalowalne. Minusem jest szybkość, ponieważ przecina ona całą strukturę drzewa dla każdego „piksela”!
Pierwszy argument wiersza poleceń kontroluje głębokość rozgałęzienia. A druga skala kontrolna (2 oznacza 200%).
źródło
Mathematica ASCII
Bardzo lubię grafikę ASCII, więc dodam inną, zupełnie inną odpowiedź - szczególnie, że w Mathematica jest tak krótko:
A teraz z nieco większym zaawansowaniem skalowalne dynamiczne drzewo ASCII. Uważnie obserwuj - drzewo również się zmienia - śnieg przywiera do gałęzi, a następnie spada ;-)
źródło
Table
parametrach?Zrobiłem to dla wyzwania na / r / dailyprogrammer , (nie jestem pewien, czy ponowne użycie kodu jest niezgodne z duchem / zasadami tego), ale:
Brainfuck. Pobiera na wejściu liczbę (długość dolnego rzędu liści) i dwa znaki. Jedna przestrzeń między nimi.
Przykładowe dane wejściowe: 13 = +
Przykładowe dane wyjściowe:
Kod:
źródło
Przetwarzanie
Oryginalna fraktalna choinka. Pozycja Y myszy określa rozmiar, użyj klawiszy strzałek w górę i w dół, aby zmienić liczbę pokoleń.
źródło
Rubin
Możesz dostosować dane wyjściowe, zmieniając
*
.Dla zielonego drzewa:
((1..20).to_a+[6]*4).map{|i|puts "\e[32m"+('*'*i*2).center(80)}
Podejście 2 (drzewo Xmas, które nie wygląda jak strzała)
Podejście 3
źródło
1..20
,1..6
itp.Grafika żółwia
Na podstawie właściwości spirali Eulera .
Kod:
Skala zależy od wielkości kroku (
move forward by: 6
). Wersja interaktywna jest dostępna tutaj .PS Zainspirowany tym pytaniem.
źródło
move forward by 6
. Na przykład10
spowoduje utworzenie większego drzewa. Właściwie nie ma danych wejściowych w tym „języku” (lub cały kod można traktować jako dane wejściowe;)).Przetwarzanie
Zrobiłem ten generator drzewa za pomocą L-System i Turtle.
kod:
źródło
JavaScript (uruchamiany na dowolnej stronie w konsoli)
Grałem w tę grę, ale potem postanowiłem tego nie robić, więc, jak widać, istnieje mnóstwo TON magicznych liczb: P
Wynik dla s = 300:
s = 600:
źródło
Język Game Maker
spr_tree
Drzewo Utwórz wydarzenie
Pokój, 402 na 599
Drzewo jest umieszczone na
(0,0)
Premia! Możesz zmienić rozmiar choinki po początkowym wprowadzeniu za pomocą klawiszy 0–9.
źródło
Odpowiedź AppleScript + SE
Właściwie podniosłem to przypadkowo podczas edytowania odpowiedzi na to pytanie. Domyśl.
Użyj tego, uruchamiając kod, wpisując żądany numer, przesuwając palcem do posta SE i klikając pole tekstowe. Wykorzystuje to fakt, że cytaty są nakładane.
Wyjście (wejście 50):
źródło
Zdobione drzewo FORTRAN
Drzewo ma ograniczony zakres rozmiarów, ale wierzy, że dokładnie odzwierciedla życie większości choinek.
Z niemowlęcia:
Do drzewa dojrzewania:
Do osoby dorosłej:
źródło
Jawa
Przykładowe wyniki:
Rozmiar = 3:
Rozmiar = 4:
Rozmiar = 5:
Rozmiar = 12:
Rozmiar = 20:
źródło
Rebol
Z dialektem do wyświetlania symboli. Aby zmienić rozmiar drzewa, wystarczy zmienić parametr
make-tree
.źródło
tree
blok. Możesz zmienić jego rozmiar lub zmienić niektóre symbole do woli.Pyton
źródło
Ti-Basic 84
Pyta o rozmiar:
Wyjście (rozmiar 1):
źródło