Một cây H là một cấu trúc cây fractal mà bắt đầu với một đường thẳng. Trong mỗi lần lặp, các nhánh T được thêm vào tất cả các điểm cuối. Trong thử thách này, bạn phải tạo một đại diện ASCII cho mỗi cấp độ cây H thứ hai .
Các cấp độ đầu tiên chỉ đơn giản chứa ba ký tự gạch nối-trừ:
---
Các cấp tiếp theo được xây dựng đệ quy:
- Tạo ma trận 2x2 bản sao từ cấp trước, cách nhau bởi ba khoảng trắng hoặc dòng.
- Kết nối trung tâm của các bản sao với các dòng nghệ thuật ASCII dưới dạng H. Sử dụng
-
cho các đường ngang,|
cho các đường thẳng đứng và+
bất cứ khi nào các đường gặp nhau.
Cấp độ thứ hai
-+- -+-
| |
+-----+
| |
-+- -+-
Cấp độ thứ ba
-+- -+- -+- -+-
| | | |
+--+--+ +--+--+
| | | | | |
-+- | -+- -+- | -+-
| |
+-----------+
| |
-+- | -+- -+- | -+-
| | | | | |
+--+--+ +--+--+
| | | |
-+- -+- -+- -+-
Quy tắc
- Đầu vào là một số nguyên biểu thị mức độ của cây H nghệ thuật ASCII như được mô tả ở trên ( không phải cấp độ cây H thực tế), bằng 0 hoặc một chỉ mục.
- Đầu ra là linh hoạt. Ví dụ: bạn có thể in kết quả hoặc trả về một chuỗi phân tách dòng mới, danh sách các chuỗi cho mỗi dòng hoặc một mảng ký tự 2D.
- Bạn phải sử dụng
-
,|
,+
và các nhân vật không gian. - Không gian lưu trữ và tối đa ba dòng khoảng trắng kéo dài được cho phép.
Đây là mã golf. Câu trả lời ngắn nhất trong byte thắng.