Nhiệm vụ của bạn: tạo ra một bông tuyết Koch đến độ sâu thứ n. Bạn không cần phải tạo ra một bông tuyết Koch hoàn chỉnh, chỉ cần một bên của tam giác bắt đầu. Wikipedia về mảnh bong bóng của Koch: https://en.wikipedia.org/wiki/Koch_snowflower .
Quy tắc:
- Chương trình phải tạo ra một mặt của bông tuyết Koch đến độ sâu thứ n.
- Đầu ra phải là ASCII.
- Bạn có thể tạo ra toàn bộ bông tuyết; Điều này là không bắt buộc.
- Quy tắc tiêu chuẩn cho đầu vào / đầu ra và sơ hở và công cụ áp dụng.
- Khoảng trắng không quan trọng, miễn là tất cả các ký tự ở đúng vị trí so với nhau.
- Mã ngắn nhất sẽ thắng!
Các trường hợp thử nghiệm:
n = 0:
__
n = 1:
__/\__
n = 2:
__/\__
\ /
__/\__/ \__/\__
n = 3:
__/\__
\ /
__/\__/ \__/\__
\ /
/_ _\
\ /
__/\__ __/ \__ __/\__
\ / \ / \ /
__/\__/ \__/\__/ \__/\__/ \__/\__
Tôi hy vọng điều này có ý nghĩa. Lưu ý rằng trong mỗi trường hợp thử nghiệm, fractal có thể được chia thành ba phần bằng nhau về chiều dài. Cũng lưu ý rằng chiều rộng của mỗi bông tuyết gấp ba lần chiều rộng của thế hệ trước của bông tuyết.
__/\__
với hai gạch chân, làm cho mỗi lần lặp lại lớn gấp 3 lần so với lần trước. Chỉ sử dụng một gạch chân dường như sẽ tạo ra mâu thuẫn bắt đầu trở nên thực sự khó xử trong n = 3. Ví dụ, các phần bên ngoài có chiều rộng 12 trong khi phần giữa chỉ có chiều rộng 10, do hậu quả của /_
và _\
quá chật chội. Và thậm chí trước đó bạn đã _
mở rộng gấp đôi chiều rộng /
và \
.
/_
và _\
là phần duy nhất thực sự gây tử vong - phần dưới cần phải đi, bởi vì chúng cần phải ở cùng vị trí với /
và \
. Khi đã xong, mọi thứ có thể mở rộng gấp 3 lần từ n = 1 trở đi (nhưng n = 0 không phù hợp.)