Santa đã có thể tái sản xuất tất cả những món quà mà yêu tinh đã đánh cắp qua đêm! Bây giờ anh phải gửi chúng đến dây chuyền lắp ráp để đóng gói. Anh ta thường có một camera để giám sát dây chuyền lắp ráp để đảm bảo các yêu tinh đang làm tốt công việc và bởi vì hình ảnh của dây chuyền lắp ráp trông rất đẹp trên áp phích quảng cáo [cần dẫn nguồn]
Thật không may, máy ảnh của anh ấy đã bị hỏng, vì vậy anh ấy muốn bạn vẽ ra một mô phỏng về dây chuyền lắp ráp sẽ trông như thế nào!
Để giữ cho dây chuyền lắp ráp hoạt động với hiệu quả tối đa và giảm nguy cơ lỗi hoặc hỏng hóc, tất cả các hộp hiện tại đều có cùng chiều rộng để chúng khớp hoàn hảo trên băng chuyền.
Thử thách
Đưa ra một danh sách các món quà được đại diện bởi kích thước của chúng, xuất ra một băng chuyền với tất cả các món quà.
Một món quà được vẽ như vậy:
+----+
/ /|
+----+ |
| | +
| |/
+----+
Món quà này có chiều rộng 1, chiều cao 2 và chiều dài 4. Lưu ý rằng các dấu cộng không được tính cho chiều dài bên, vì vậy một món quà có chiều dài 4 thực sự kéo dài 6 vị trí.
Tất cả các món quà được vẽ cạnh nhau với một khoảng trống giữa hai ký tự gần nhất; nghĩa là, các góc dưới cùng bên trái của các món quà được đặt cách nhau sao cho nếu hộp hiện tại có chiều dài l
và chiều rộng w
, góc dưới bên trái của hộp hiện tại sẽ chính xác là l + w + 4
các vị trí bên phải của góc dưới bên trái của hộp trước.
Sau khi tất cả các hộp hiện tại được rút ra, băng chuyền được rút ra bằng cách thay thế khoảng trống giữa các hộp trên mỗi width + 2
dòng cuối cùng bằng dấu gạch dưới.
Kết quả cuối cùng cho các hộp có mặt với (l, w, h)
các [(4, 1, 2), (8, 1, 3), (1, 1, 1)]
sẽ là:
+--------+
+----+ / /|
/ /| +--------+ | +-+
+----+ | | | | / /|
| | +_| | +_+-+ +
| |/__| |/__| |/
+----+___+--------+___+-+
Định dạng thông số kỹ thuật
Bạn có thể chọn một danh sách gồm 3 bộ dữ liệu trong đó một trong các thành phần nhất quán trên toàn bộ danh sách (đó sẽ là chiều rộng) hoặc bạn có thể lấy chiều rộng hiện tại và sau đó là danh sách 2 bộ dữ liệu biểu thị độ dài và chiều cao của mỗi món quà. Bạn có thể lấy các đầu vào theo bất kỳ thứ tự nào và ở bất kỳ định dạng hợp lý nào, nhưng các món quà phải được hiển thị theo cùng thứ tự mà chúng được đưa ra làm đầu vào.
Bạn có thể chọn bất kỳ định dạng đầu ra hợp lý nào cho nghệ thuật ASCII (bao gồm cả việc trả về từ một hàm).
Các trường hợp thử nghiệm
Những trường hợp thử nghiệm được đưa ra như [(l, w, h), ...]
định dạng.
[(4, 1, 2), (8, 1, 3), (1, 1, 1)]:
+--------+
+----+ / /|
/ /| +--------+ | +-+
+----+ | | | | / /|
| | +_| | +_+-+ +
| |/__| |/__| |/
+----+___+--------+___+-+
[(5, 3, 4), (8, 3, 1), (1, 3, 7)]:
+-+
/ /|
/ / |
+-----+ / / |
/ /| +-+ |
/ / | | | |
/ / | +--------+ | | |
+-----+ | / /| | | |
| | +___/ / +_| | +
| | /___/ / /__| | /
| | /___+--------+ /___| | /
| |/____| |/____| |/
+-----+_____+--------+_____+-+
[(0, 0, 0)] (this is the most interesting test case ever :P)
++
+++
++
[(8, 3, 0), (0, 3, 8)] (more zero cases)
++
//|
// |
// |
++ |
|| |
|| |
|| |
+--------+ || |
/ /+_|| +
/ //__|| /
/ //___|| /
+--------+/____||/
+--------+_____++
Quy tắc
- Áp dụng sơ hở tiêu chuẩn
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng
- Không có câu trả lời sẽ được chấp nhận
Lưu ý: Tôi đã lấy cảm hứng cho loạt thử thách này từ Advent Of Code . Tôi không có liên kết với trang web này
Bạn có thể xem danh sách tất cả các thử thách trong chuỗi bằng cách xem phần 'Liên kết' của thử thách đầu tiên tại đây .