Н дерево является фрактальной структурой дерева , которая начинается с линией. В каждой итерации T ветвей добавляются ко всем конечным точкам. В этой задаче вы должны создать ASCII-представление каждого второго уровня дерева H.
Первый уровень просто содержит три дефис-минус символов:
---
Следующие уровни построены рекурсивно:
- Создайте матрицу 2х2 копий с предыдущего уровня, разделенных тремя пробелами или строками.
- Соедините центры копий художественными линиями ASCII в форме буквы H. Используйте
-
для горизонтальных линий,|
вертикальных линий и+
всякий раз , когда линии встречаются друг с другом.
Второй уровень
-+- -+-
| |
+-----+
| |
-+- -+-
Третий уровень
-+- -+- -+- -+-
| | | |
+--+--+ +--+--+
| | | | | |
-+- | -+- -+- | -+-
| |
+-----------+
| |
-+- | -+- -+- | -+-
| | | | | |
+--+--+ +--+--+
| | | |
-+- -+- -+- -+-
правила
- Входные данные - это целое число, представляющее уровень H-дерева ASCII-искусства, как описано выше ( не фактический уровень H-дерева), с нулевым или единичным индексом.
- Выход гибкий. Например, вы можете напечатать результат или вернуть строку, разделенную новой строкой, список строк для каждой строки или двумерный массив символов.
- Вы должны использовать
-
,|
,+
и символы пробела. - Задний пробел и до трех задних пробелов разрешены.
Это код гольф. Самый короткий ответ в байтах побеждает.
Ответы:
Холст ,
2019 байтовПопробуй это здесь!
Объяснение:
источник
Древесный уголь , 22 байта
Попробуйте онлайн! Ссылка на подробную версию кода. 0 индексированные. Объяснение:
Выведите первые три
-
секунды, оставив курсор посередине.Повторите эти действия для указанного количества раз.
Повторите дважды для каждого
H
. Каждый цикл создает немного большеH
из предыдущего цикла, но нам нужны только альтернативныеH
s.Поверните фигуру.
Нарисуйте половину следующей линии.
Подумайте, чтобы завершить шаг.
Результат на каждой итерации следующий:
источник
H
выглядит 5-й уровень , быстрый уменьшенный взгляд: i.imgur.com/EGapcrS.pngPython 2 , 227 байт
Попробуйте онлайн!
источник
Perl 6 , 118 байт
Попробуйте онлайн!
0 индексированные. Возвращает двумерный массив символов. Основная идея заключается в том, что выражение
генерирует шаблон
объяснение
источник