Вызов
Зима быстро приближается со многими местами, получающими первые слои снега в течение сезона 15/16, так почему бы нам не разбить снегоуборочные машины и не закодировать себя снегом?
Получив целое число n
через STDIN, выведите ASCII-представление снежинки беты (как описано ниже) на уровне n
.
Бета Снежинка
Снежинка начинается на уровне 0 с одного х:
x
Затем в каждом углу вы добавляете одну из следующих фигур:
x
xx
Вы добавляете вышеуказанную форму в верхний правый угол. Для нижнего правого угла поверните его на 90 ° по часовой стрелке, для нижнего левого, на 180 ° по часовой стрелке и для верхнего левого, на 270 ° по часовой стрелке.
Если вы сделаете это, вы получите следующую форму:
x x
xx xx
x
xx xx
x x
Обратите внимание на ориентацию фигур. Продолжая, мы добавляем больше фигур в каждый угол, используя правила ориентации, описанные выше, к диаграмме, чтобы получить уровень 2:
x x x
xxxxxxx
xx x x xx
xxx xxx
xx x xx
xxx xxx
xx x x xx
xxxxxxx
x x x
Обратите внимание, что фигуры добавляются только к x
s с двумя или более открытыми сторонами (это упоминается как угол выше).
L-формы могут и будут перекрываться для значений n
больше 1. Например:
Если уровень 0:
x x
Тогда на уровне 1 должны быть совпадения (обозначенные o
, не включайте o
в ваш вывод):
x o x
xxxoxxx
x x
xxxoxxx
x o x
Ваша задача - вывести это ASCII-представление снежинки Беты.
бонус
Для самой короткой программы будет бонус в 50 повторений, который при n
отрицательном значении выводит снежинку (на уровне n*-1
) в виде изображения или графически на экран.
У вас могут быть отдельные программы для награды и основной задачи.
выигрыш
Самая короткая программа в байтах побеждает.
2 or more exposed sides
правило? Предполагая , что центр является0,0
то1,1
,1,-1
,-1,-1
,-1,1
все имеют 2 открытые стороны (стороны , обращенной к другим 4 балла). Разве не должно быть 3+ открытых сторон, чтобы избежать заполнения? Или поочередно он расширяется, только если у него 0 или 1 соседей (кардинал).Ответы:
CJam,
888382 байтаПроверьте это здесь.
Я думаю, что я могу сэкономить, узнав, где находятся углы. Но, по крайней мере, я наконец-то знаю, как будут выглядеть следующие итерации:
N = 3 :
N = 4:
Глядя на них, они кажутся намного более регулярными, чем я ожидал, и какое-то аналитическое решение, которое генерирует их напрямую, может быть намного короче.
источник
Python 2, 269 байт
Не размещает фигуры в каждом углу, но определяет, находится ли персонаж в снежинке, на основе координат.
Сначала генерируется один угол, а затем отражается до полной снежинки.
источник