Cái ác ngôn ngữ lập trình bí truyền có một hoạt động thú vị trên các giá trị byte mà nó gọi là "dệt". Nó thực chất là một hoán vị của tám bit của byte (không quan trọng chúng ta bắt đầu đếm từ đâu, vì mẫu này là đối xứng):
- Bit 0 được chuyển sang bit 2
- Bit 1 được chuyển sang bit 0
- Bit 2 được chuyển sang bit 4
- Bit 3 được chuyển sang bit 1
- Bit 4 được chuyển sang bit 6
- Bit 5 được chuyển sang bit 3
- Bit 6 được chuyển sang bit 7
- Bit 7 được chuyển sang bit 5
Để thuận tiện, đây là hai đại diện khác của hoán vị. Như một chu kỳ:
(02467531)
Và như một danh sách các cặp ánh xạ:
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
Nhiệm vụ của bạn là để hình dung hoán vị này, sử dụng các nhân vật hộp vẽ ─
, │
, ┌
, ┐
, └
, ┘
, ┼
(Unicode code points: U + 2500, U + 2502, U + 250C, U + 2510, U + 2514, U + 2518, U + 253C). Hình dung này phải đáp ứng các ràng buộc sau:
Dòng đầu tiên và cuối cùng là chính xác:
0 1 2 3 4 5 6 7
Giữa các dòng đó, bạn có thể sử dụng bao nhiêu dòng tùy thích tối đa 15 ký tự cho mỗi ký tự vẽ hộp của bạn (bạn sẽ cần ít nhất 4 dòng). Các dòng nên bắt đầu theo chiều dọc bên dưới một trong các chữ số trên hàng đầu tiên và kết thúc theo chiều dọc trên chữ số tương ứng trên hàng cuối cùng. Tám đường phải được kết nối và chỉ có thể đi qua ┼
(luôn luôn là đường giao nhau, không bao giờ có hai đường rẽ chạm nhau). Các đường chính xác của các dòng là tùy thuộc vào bạn (và tìm một bố cục đặc biệt có thể chơi được là cốt lõi của thử thách này). Một đầu ra hợp lệ sẽ là:
0 1 2 3 4 5 6 7
│ │ └─┼┐│ │ └┐│
└─┼─┐ ││└─┼─┐││
┌─┘ │ ││ │ │││
│ ┌─┼─┘│ │ │││
│ │ │ ┌┼──┘ │││
│ │ │ │└┐ ┌─┼┼┘
│ │ │ │ │ │ │└┐
0 1 2 3 4 5 6 7
Tuy nhiên, bất kỳ bố cục nào khác kết nối chính xác các chữ số bên phải cũng tốt. Vui lòng hiển thị đầu ra bạn đã chọn trong câu trả lời của bạn.
Bạn có thể viết một chương trình hoặc chức năng và sẽ không nhận bất kỳ đầu vào nào. Xuất sơ đồ sang STDOUT (hoặc thay thế gần nhất) hoặc dưới dạng giá trị trả về hàm dưới dạng chuỗi hoặc danh sách các chuỗi (mỗi chuỗi đại diện cho một dòng).
Quy tắc golf tiêu chuẩn áp dụng, vì vậy mã ngắn nhất (tính bằng byte) sẽ thắng.
01234567
làm đầu vào và sau đó kết nối nó với 01234567
? Vì vậy, bạn phải tự tìm ra các liên kết? Nó sẽ là một nhiệm vụ khó khăn hơn đáng kể, đặc biệt là cho chơi golf.