Seu desafio: faça uma árvore de Natal. O tamanho deve ser escolhido por algum método de entrada, mas não precisa estar diretamente relacionado a nenhuma parte da árvore; no entanto, insumos maiores devem produzir uma árvore maior.
Como você pode fazer isso? Você pode criar a árvore da maneira que desejar, exceto imprimindo o caractere unicode da árvore , como exibir uma imagem, arte ascii, com outros aspectos, etc. Faça o que fizer, lembre-se de que este é um concurso de popularidade ; seja criativo.
A resposta com mais votos até o final de dezembro vence, mas aceitarei outra se aumentar
popularity-contest
Justin
fonte
fonte
Respostas:
Pitão
Uma árvore de Natal fractal usando o pacote de tartaruga:
n é o parâmetro size, a árvore mostrada é para n = 50. Leva um minuto ou dois para desenhar.
fonte
:)
Javascript
Mostre a árvore animada online .
fonte
Ainda outra árvore da linguagem Mathematica / Wolfram baseada na resposta de Vitaliy :
fonte
Javascript
Este é o meu primeiro código de golfe!
Ele vem em 295 caracteres.
O tamanho e a decoração da árvore são definidos pelas variáveis a, b, c:
Parece melhor quando a é um múltiplo de b, como no exemplo.
Cole no console para criar uma árvore. Parece melhor de longe!
fonte
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
? Nenhum +1 de mim.C ++
Vamos fazer isso no espírito da IOCCC e ter o código na forma de uma árvore também! : D
Pega um número inteiro como entrada e retorna uma árvore de Natal com muitos "níveis de pilha". Por exemplo, uma entrada de
Devoluções:
fonte
*
no topo da árvore (código fonte), terá o meu +1.Javascript
Gerador de árvore de abeto de procedimentos totalmente 3D quase realista.
Apresentando: configuração extensa com ainda mais opções de configuração presentes no código; um tronco em ziguezague; ramos ramificados; animação de crescimento; rotação de uma árvore totalmente crescida.
Não apresenta: jQuery, Underscore.js ou qualquer outra biblioteca; dependência de hardware - somente o suporte de tela é necessário; código confuso (pelo menos essa era a intenção)
Página ao vivo: http://fiddle.jshell.net/honnza/NMva7/show/
Editar página: http://jsfiddle.net/honnza/NMva7/
captura de tela:
HTML:
Javascript:
fonte
Bater
Saída de amostra:
O tamanho da árvore (ou seja, número de linhas) é passado na linha de comando e é limitado a valores de 5 ou mais. A imagem acima foi produzido a partir do comando
./xmastree.sh 12
. Aqui está o código fonte:fonte
Isenção de responsabilidade: isso é baseado na minha árvore de Natal LaTeX, publicada pela primeira vez aqui: https://tex.stackexchange.com/a/87921/8463
O código a seguir irá gerar uma árvore chrismtas, com decorações aleatórias. Você pode alterar o tamanho da árvore e a semente aleatória para gerar uma árvore diferente.
Para alterar a semente, modifique o valor interno
\pgfmathsetseed{\year * 6}
para qualquer outro valor numérico (o padrão gerará uma nova árvore a cada ano)Para alterar o tamanho da árvore, modifique
order=10
para que seja maior ou menor, dependendo do tamanho da árvore que você deseja.Exemplos.
order=11
:order=8
fonte
Befunge 93
Esta é uma árvore não decorada:
Saída de amostra, entrada é 10:
Vamos adicionar algumas decorações:
Saída de amostra:
fonte
HTML e CSS
Tamanhos entre 1 e 25 são suportados - basta adicionar o tamanho ao URL como identificador de fragmento.
Funciona no Chrome, Explorer e Firefox. No Opera é feio, mas a parte de dimensionamento funciona.
Acesso à amostra:
Acesso à amostra:
Visualização ao vivo:
http://dabblet.com/gist/8026898
(A exibição ao vivo não contém CSS prefixado pelo fornecedor e inclui links para alterar o tamanho.)
fonte
:target
para escalar a saída :-)Java
Para alterar o tamanho, altere
scale
para outro valor duplo (mantenha-o em torno de 1 se desejar ver alguma coisa).Saída de amostra (para 1.0 como escala, com preguiça de tirar uma captura de tela, basta publicar o que faz):
O programa pega essa imagem da internet, redimensiona de acordo com e
scale
, em seguida, coloca-a em uma janela não decorada onde é exibida. Clicar na janela fecha o programa. Além disso, o texto da dica da ferramenta está lá, mas o link não está.fonte
TI-89 Basic
Só porque eu queria ver uma árvore de Natal na minha calculadora. Vou digitá-lo aqui como aparece na minha calculadora.
Isso funciona da mesma maneira que a minha resposta Befunge, mas eu uso ornamentos diferentes. Sim, os
elementAt
usos repetidos da minha função tornam o programa mais lento por causa de muitas conversões entre listas e matrizes, mas, como escrevi antes, decidi não editá-lo. Além disso, aprendi ao digitar esta resposta que©
faz um comentário (pensei que parecia@
, mas esse é outro personagem). Nunca soube o que era antes agora.Saída de amostra:
Eu amo esses
∫
; eles parecem bastões de doces.fonte
Língua Wolfram ( Mathematica )
Como discutido no famoso tópico do Reddit: t * sin (t) tree Árvore de Natal
fonte
t*sin(t)
como eu disse no post. Assim, a plotagem de t maiores criará apenas uma árvore maior:Table[..., {t, 0, 200, PD}]
Bash com Bc e ImageMagick
Exemplo de execução:
Saída de amostra:
Exemplo de execução:
Saída de amostra:
fonte
C
Saída de amostra para profundidade = 4, zoom = 2,0
Essa resposta emprega uma abordagem bem diferente de outras respostas. Ele gera uma estrutura em árvore ramificando-se recursivamente. Cada ramificação é representada por um conjunto de círculos. E, finalmente, a função principal mostra os círculos e é preenchida com caracteres quando os círculos são atingidos. Como é feito pela amostragem de uma cena (como o traçado de raios), é intrinsecamente escalável. A desvantagem é a velocidade, pois ela atravessa toda a estrutura da árvore para cada "pixel"!
O primeiro argumento da linha de comando controla a profundidade da ramificação. E a segunda escala de controles (2 significa 200%).
fonte
Mathematica ASCII
Eu realmente gosto da arte ASCII, então adiciono outra resposta muito diferente - especialmente por ser tão curta no Mathematica:
E agora com um pouco mais de sofisticação, uma árvore ASCII dinâmica e escalável. Observe atentamente - a árvore também está mudando - a neve gruda nos galhos e depois cai ;-)
fonte
Table
parâmetros de 35 in ?Eu fiz isso para um desafio no / r / dailyprogrammer (não tenho certeza se a reutilização do código é contra o espírito / regras disso), mas:
Brainfuck. Toma como entrada um número (comprimento da linha inferior das folhas) e dois caracteres. Um espaço entre cada um.
Exemplo de entrada: 13 = +
Exemplo de saída:
Código:
fonte
Em processamento
A árvore de Natal original fractal. A posição do mouse Y determina o tamanho, use as teclas de seta para cima e para baixo para alterar o número de gerações.
fonte
Rubi
Você pode personalizar a saída alterando
*
.Para uma árvore verde:
((1..20).to_a+[6]*4).map{|i|puts "\e[32m"+('*'*i*2).center(80)}
Abordagem 2 (árvore de Natal que não parece uma flecha)
Abordagem 3
fonte
1..20
,1..6
, Etc.Gráficos de tartaruga
Com base nas propriedades da espiral de Euler .
Código:
A escala é determinada pelo tamanho da etapa (
move forward by: 6
). Uma versão interativa está disponível aqui .PS Inspirado por esta pergunta.
fonte
move forward by 6
. Por exemplo,10
produzirá uma árvore maior. Na verdade, não há entrada nessa "linguagem" (ou todo o código pode ser tratado como entrada;)).Em processamento
Fiz este gerador de árvores usando um sistema L e uma tartaruga.
código:
fonte
JavaScript (executado em qualquer página do console)
Eu estava jogando isso, mas depois decidi não jogar, então, como você pode ver, existem toneladas de números mágicos: P
Resultado para s = 300:
s = 600:
fonte
Idioma do Game Maker
spr_tree
O evento Create da árvore
Quarto, 402 por 599
A árvore é colocada em
(0,0)
Bônus! Você pode redimensionar a árvore de Natal após a entrada inicial com as teclas 0-9.
fonte
Resposta AppleScript + SE
Na verdade, peguei isso por acidente enquanto editava uma resposta nesta pergunta. Vai saber.
Use isso executando o código, digitando o número desejado, passando para a postagem do SE e clicando no campo de texto. Isso explora o fato de que aspas são empilhadas.
Saída (entrada 50):
fonte
Árvore FORTRAN decorada
A árvore tem uma variedade limitada de tamanhos, mas acredita que reflete com precisão a vida da maioria das árvores de Natal.
Da árvore infantil:
Para árvore adolescente:
Para adulto:
fonte
Java
Resultados da amostra:
Tamanho = 3:
Tamanho = 4:
Tamanho = 5:
Tamanho = 12:
Tamanho = 20:
fonte
Rebol
Com um dialeto para exibir os símbolos. Para alterar o tamanho da árvore, basta alterar o parâmetro de
make-tree
.fonte
tree
bloco. Você pode redimensioná-lo ou alterar alguns dos símbolos à sua vontade.Pitão
fonte
Ti-Basic 84
Solicita um tamanho:
Saída (tamanho 1):
fonte