Вызов
Зима быстро приближается со многими местами, получающими первые слои снега в течение сезона 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
Обратите внимание, что фигуры добавляются только к xs с двумя или более открытыми сторонами (это упоминается как угол выше).
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 соседей (кардинал).