Из-за этого семьи со всего мира строят рождественские елки.
Но это нормальное дерево может через некоторое время наскучить, поэтому давайте сделаем дерево ASCII!
Листья представлены #
и должны быть расположены, как показано в примере вывода. У нас есть 5 шариков ( O
) и 5 леденцов ( J
), которые мы произвольно размещаем вокруг дерева. У нас также есть свеча сверху.
Вход: нет
Выход:
^
|
###
##O##
#######
#####
####J##
#########
####O######
#############
###J###
#########
####O###J##
#######O#####
###J########O##
###########J#####
###
###
Правила (если это не в правилах, предположим, что вы можете)
Шарики и леденцы должны быть произвольно размещены на дереве и иметь как минимум один лист между ними, не считая диагоналей.
Каждый лист должен иметь ненулевой шанс получить мяч или конфету.
В каждой строке могут быть начальные или конечные пробелы, если дерево имеет правильную форму.
Это код-гольф , поэтому выигрывает самый короткий код в символах.
Ответы:
JavaScript (ES6), 148 байт
Надеюсь, это должно соответствовать условию «достаточно случайным».
демонстрация
Показать фрагмент кода
источник
j=new Date
сj=0
кj=12
.)CS-скрипт - 306 байт
Еще раз с форматированием и комментариями:
Это в основном C #, но использование CS-Script позволяет мне пропустить все вопросы.
Попробуй это здесь!
Примечания:
В настоящее время это выводит еще одну строку пробелов под деревом, чтобы убедиться, что «проверка существующих орнаментов ниже» не вызывает исключение IndexOutOfBoundsException. Другие решения будут:
Я оставлю это на OP, если это должно быть изменено.
Наконец, это мой первый гольф, поэтому любые отзывы приветствуются. ;)
источник
using System;
в счетчик байтов, поскольку вы не можете использовать егоRandom
илиConsole
без него. meta.codegolf.stackexchange.com/questions/10081/… Извините, что добавляю 13 байтов :(using System;
не нужен (он автоматически импортирует общие пространства имен). Но, может быть, я расщепляю волосы. ¯_ (ツ) _ / ¯_=>{var c=... return c;}
TSQL,
556532494476 байтЭтот скрипт должен быть выполнен в базе данных master
Golfed:
Ungolfed:
Попробуйте это
источник
Python 3 -
450427 байтЯ знаю,
450
это слишком много для питона. Но но.....Если функция
for i in'O'*...
превратится в лучшую рекурсивную функцию, то можно сократить множество байтов.Попробуй здесь
Редактировать :
Сохранено 2 байта, используя в
;
качестве разделителя, и несколько байтов, принимая количество байтов новой строки как 1 байт.источник
JavaScript, 204 байта
источник
\n
как 1 байт?PHP, 200 байт
может быть короче с более сложным подходом; но я спешу.
требует PHP 5.6 или 7.0. Запустите
-nr
или попробуйте онлайн .источник
Scala, 329 байт
источник