Вдохновленный YouTube видео от другого пользователя PPCG ...
Перед вами стоит задача - использовать ASCII-арт для рисования стены замка Minecraft из андезита и диорита. Форма стенки является Кантора Set . Для справки, Канторский Набор сделан, повторяя следующие N раз:
- Тройной текущий шаг
- Заменить средний с пробелом
- Добавьте полную строку ниже
Это создает следующее для первых четырех шагов:
*
* *
***
* * * *
*** ***
*********
* * * * * * * *
*** *** *** ***
********* *********
***************************
Однако ваша задача не так проста. Видите ли, после того, как набор канторов становится действительно большим, становится скучно смотреть на одного и того же персонажа, повторяемого снова и снова. Таким образом, мы собираемся изменить это, накладывая чередующиеся серии звездочек *
и знаков фунта #
. Вы должны чередовать каждые три символа по горизонтали и по каждой строке по вертикали. (Конечно, оставляя пробелы одинаковыми) Например, второй пример станет:
* *
###
и третий пример станет:
* * * *
### ###
***###***
Для полноты приведем примеры четвертый и пятый:
#4
* * * * * * * *
### ### ### ###
***###*** ***###***
###***###***###***###***###
#5
* * * * * * * * * * * * * * * *
### ### ### ### ### ### ### ###
***###*** ***###*** ***###*** ***###***
###***###***###***###***### ###***###***###***###***###
***###***###***###***###***###***###***###***###***###***###***###***###***###***
И один мега пример, 6-я итерация:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###
***###*** ***###*** ***###*** ***###*** ***###*** ***###*** ***###*** ***###***
###***###***###***###***### ###***###***###***###***### ###***###***###***###***### ###***###***###***###***###
***###***###***###***###***###***###***###***###***###***###***###***###***###*** ***###***###***###***###***###***###***###***###***###***###***###***###***###***
###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###***###
Соревнование
Вы должны написать полную программу или функцию, которая принимает положительное целое число для ввода и выводит N -е поколение этого фрактала замка Minecraft. Вы можете использовать ввод и вывод любым разумным способом, и вам не нужно беспокоиться о недопустимых вводах (таких как числа меньше 1, числа с плавающей запятой, не числа и т. Д.).
Самый короткий ответ, измеренный в байтах, побеждает!
Ответы:
Желе ,
433635 байтПросто для начала, я уверен, что это может быть короче.
Попробуйте онлайн!
* При n > 5 ваш браузер может обернуть вывод, но если вы скопируете и вставите его в редактор без переноса, вы увидите правильный вывод.
объяснение
источник
JavaScript (ES7),
132125 байтГде
\n
представляет буквальный символ новой строки. Версия ES6 для 141 байта:источник
Python 2,
142138136 байтЭто кусок кода отсюда , а затем отредактирован для этой задачи.
Выложу объяснение позже.
Кроме того, кстати, два пробела являются вкладками.
Редактирование 1: 4 байта сохранено благодаря @DJMcMayhem.
Редактирование 2: 2 байта сохранено благодаря @daHugLenny.
источник
exec("s+=len(s)*' '+s;"*(n-i))
?Рубин,
115103102 байтаНа основе решения jsvnm к стандартному набору Cantor для гольфа .
-12 байт благодаря Джордану.
источник
g=->{T.tr"*#","#*"}
s.map!{...}
вместоs=s.map{...};s
.+
бы изменить на<<
, и это в конечном итоге будет той же длины. Я считаю, чтоs
в любом случае это все еще необходимо в конце - карта находится внутри.times
цикла.J,
4745 байтНа основании моего решения Кантора поставил перед собой задачу.
использование
объяснение
источник
PHP, 159 байт
сломать
источник