Ваша задача: сделать елку. Размер должен выбираться каким-либо методом ввода, но не должен быть напрямую связан с какой-либо частью дерева; тем не менее, большие входы должны привести к большему дереву.
Как ты можешь это сделать? Вы можете создать дерево любым удобным для вас способом, кроме печати символа юникода для дерева , такого как вывод изображения, ascii art, с другими аспектами и т. Д. Что бы вы ни делали, помните, что это конкурс популярности , поэтому будь креативным.
Ответ с наибольшим количеством голосов к концу декабря выигрывает, но я приму другой, если он станет выше
popularity-contest
Джастин
источник
источник
Ответы:
питон
Фрактальная новогодняя елка с использованием пакета черепаха:
n - параметр размера, показанное дерево для n = 50. Занимает минуту или две, чтобы нарисовать.
источник
:)
JavaScript
Покажите анимированное дерево онлайн .
источник
Еще одно дерево языков Mathematica / Wolfram Language, основанное на ответе Виталия :
источник
Javascript
Это мой первый кодовый гольф!
Он входит в 295 символов.
Размер и оформление дерева задаются переменными a, b, c:
Лучше всего выглядит, когда a кратно b, как в примере.
Вставьте в консоль, чтобы создать дерево. Выглядит лучше издалека!
источник
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
? Нет +1 от меня.C ++
Давайте сделаем это в духе IOCCC и также будем иметь код в форме дерева! : D
Принимает целое число в качестве входных данных и возвращает рождественскую елку с таким количеством «уровней стека». Например, ввод
Возвращает:
источник
*
вверху дерева (исходный код), у вас будет мой +1.Javascript
Квазиреалистичный полностью трехмерный процедурный генератор елей.
Особенности: расширенная конфигурация с еще большим количеством параметров конфигурации, присутствующих в коде; зигзагообразный ствол; ветвящиеся ветви; анимация роста; вращение полностью выросшего дерева.
Не содержит: jQuery, Underscore.js или любой другой библиотеки; аппаратная зависимость - требуется только поддержка canvas; грязный код (по крайней мере, так было задумано)
Живая страница: http://fiddle.jshell.net/honnza/NMva7/show/
Редактировать страницу: http://jsfiddle.net/honnza/NMva7/
Скриншот:
HTML:
Javascript:
источник
удар
Образец вывода:
Размер дерева (то есть количество строк) передается в командной строке и ограничен значениями от 5 и более. Изображение выше было получено из команды
./xmastree.sh 12
. Вот исходный код:источник
Отказ от ответственности: это основано на моей рождественской елке LaTeX, впервые размещенной здесь: https://tex.stackexchange.com/a/87921/8463
Следующий код создаст дерево chrismtas со случайными украшениями. Вы можете изменить как размер дерева, так и случайное начальное число, чтобы создать другое дерево.
Чтобы изменить начальное значение, измените внутреннее значение
\pgfmathsetseed{\year * 6}
на любое другое числовое значение (значение по умолчанию будет генерировать новое дерево каждый год).Чтобы изменить размер дерева, измените его
order=10
на большее или меньшее, в зависимости от размера дерева, которое вы хотите.Примеры.
order=11
:order=8
источник
Befunge 93
Это неокрашенное дерево:
Пример вывода, ввод 10:
Давайте добавим некоторые украшения:
Образец вывода:
источник
HTML и CSS
Поддерживаются размеры от 1 до 25 - просто добавьте размер к URL-адресу в качестве идентификатора фрагмента.
Работает в Chrome, Explorer и Firefox. В Опере безобразно, но работает масштабирующая часть.
Образец доступа:
Образец доступа:
Прямая трансляция:
http://dabblet.com/gist/8026898
(Живое представление не содержит CSS с префиксом поставщика и содержит ссылки для изменения размера.)
источник
:target
для масштабирования вывода :-)Ява
Чтобы изменить размер, измените его
scale
на другое двойное значение (держите его около 1, если хотите что-то увидеть).Пример вывода (для 1.0 как масштаб, лень снимать скриншот, поэтому просто опубликовал, что он делает):
Программа берет это изображение из Интернета, изменяет его размер
scale
, а затем помещает в недекорированное окно, где оно отображается. Нажатие на окно закрывает программу. Также есть подсказка, но ссылки нет.источник
TI-89 Basic
Просто потому, что я хотел увидеть елку на своем калькуляторе. Я напишу это здесь, как показано на моем калькуляторе.
Это работает так же, как мой ответ Befunge, но я использую разные орнаменты. Да,
elementAt
повторное использование моей функции замедляет работу программы из-за большого количества преобразований между списками и матрицами, но, как я уже писал ранее, я решил не редактировать ее. Кроме того, я узнал, печатая этот ответ, который©
делает комментарий (я думал, что это выглядело@
, но это другой символ). Никогда не знал, что это было до сих пор.Образец вывода:
Я люблю их
∫
; они похожи на леденцы.источник
Wolfram Language ( Mathematica )
Как обсуждалось в известной теме Reddit: t * sin (t) ≈ Рождественская елка
источник
t*sin(t)
как я сказал в посте. Таким образом, построение графиков для больших т будет только большим деревом:Table[..., {t, 0, 200, PD}]
Bash с Bc и ImageMagick
Образец прогона:
Образец вывода:
Образец прогона:
Образец вывода:
источник
С
Пример вывода для глубины = 4, масштаб = 2,0
Этот ответ использует подход, весьма отличающийся от других ответов. Он генерирует древовидную структуру путем рекурсивного ветвления. Каждая ветвь представлена набором кружков. И, наконец, основная функция выбирает круги и заполняет их символами, когда встречаются круги. Поскольку это делается путем выборки сцены (например, трассировки лучей), она по своей сути масштабируема. Недостатком является скорость, так как она пересекает всю древовидную структуру для каждого «пикселя»!
Первый аргумент командной строки управляет глубиной ветвления. И вторая шкала управления (2 означает 200%).
источник
Mathematica ASCII
Мне действительно нравится ASCII-арт, поэтому я добавляю еще один совершенно другой ответ - особенно потому, что он так короток в Mathematica:
А теперь немного сложнее - масштабируемое динамическое дерево ASCII. Смотри внимательно - дерево тоже меняется - снег прилипает к ветвям, а затем падает ;-)
источник
Table
параметрах?Я сделал это для вызова / r / dailyprogrammer (не уверен, что повторное использование кода противоречит духу / правилам этого), но:
Brainfuck. В качестве входных данных принимает число (длина нижнего ряда листьев) и два символа. Один пробел между каждым.
Пример ввода: 13 = +
Пример вывода:
Код:
источник
обработка
Оригинальная фрактальная новогодняя елка. Положение мыши по Y определяет размер, используйте стрелки вверх и вниз для изменения количества поколений.
источник
Рубин
Вы можете настроить вывод, изменив
*
.Для зеленого дерева:
((1..20).to_a+[6]*4).map{|i|puts "\e[32m"+('*'*i*2).center(80)}
Подход 2 (рождественское дерево, которое не похоже на стрелку)
Подход 3
источник
1..20
,1..6
И т.д.Черепаха Графика
Основано на свойствах Эйлеровской спирали .
Код:
Масштаб определяется размером шага (
move forward by: 6
). Интерактивная версия доступна здесь .PS Вдохновлен этим вопросом.
источник
move forward by 6
. Например,10
будет производить большее дерево. На самом деле нет ввода в этом «языке» (или весь код может рассматриваться как ввод;)).обработка
Я сделал этот генератор деревьев, используя L-систему и Черепаху.
код:
источник
JavaScript (запустить на любой странице в консоли)
Я играл в гольф, но потом решил не делать этого, так что, как вы можете видеть, есть тонны магических чисел: P
Результат для s = 300:
с = 600:
источник
Game Maker Language
spr_tree
Событие создания дерева
Комната, 402 на 599
Дерево находится на
(0,0)
Бонус! Вы можете изменить размер елки после первоначального ввода с помощью клавиш 0-9.
источник
AppleScript + SE Ответ
На самом деле подобрал это случайно при редактировании ответа на этот вопрос. Пойди разберись.
Используйте это, запустив код, введя нужный номер, проведя пальцем к сообщению SE и щелкнув в текстовом поле. Это использует тот факт, что кавычки стека.
Выход (вход 50):
источник
Украшенное дерево ФОРТРАН
Дерево имеет ограниченный диапазон размеров, но оно считает, что оно точно отражает жизнь большинства рождественских елок.
Из детского дерева:
Для подросткового дерева:
Для взрослых:
источник
Ява
Пример результатов:
Размер = 3:
Размер = 4:
Размер = 5:
Размер = 12:
Размер = 20:
источник
Rebol
С диалектом для отображения символов. Чтобы изменить размер дерева, просто измените параметр
make-tree
.источник
tree
блок. Вы можете изменить его размер или изменить некоторые символы по вашему желанию.питон
источник
Ti-Basic 84
Просит размер:
Выход (размер 1):
источник