산타는 엘프가 밤새 훔친 모든 선물을 다시 만들 수있었습니다! 이제 포장용 조립 라인으로 보내야합니다. 그는 일반적으로 엘프들이 좋은 일을하고 있는지 확인하기 위해 조립 라인을 감독하는 카메라를 가지고 있으며 조립 라인 사진은 광고 포스터에서 멋지게 보이기 때문에 [인용 필요]
불행히도 그의 카메라가 고장 났기 때문에 조립 라인이 어떻게 보일지 시뮬레이션을 그려보고 싶습니다!
조립 라인을 최대 효율로 유지하고 오류 또는 고장 위험을 줄이려면 모든 선물 상자의 너비가 동일하여 컨베이어 벨트에 완벽하게 맞습니다.
도전
치수로 표시되는 선물 목록이 제공되면 모든 선물과 함께 컨베이어 벨트를 출력하십시오.
선물은 다음과 같이 그려집니다.
+----+
/ /|
+----+ |
| | +
| |/
+----+
이 선물의 너비 1, 높이 2 및 길이 4가 있습니다. 더하기 부호는 측면 길이에 포함되지 않으므로 길이 4의 선물은 실제로 6 개의 위치에 걸쳐 있습니다.
모든 선물은 가장 가까운 두 문자 사이에 하나의 공백으로 나란히 그려집니다. 즉, 선물 상자의 왼쪽 아래 모서리는 선물 상자의 길이 l
와 너비 가 같으면 w
다음 선물 상자의 왼쪽 아래 모서리가 l + w + 4
이전 상자의 왼쪽 아래 모서리의 정확한 위치 가됩니다 .
모든 선물 상자를 그린 후에는 마지막 width + 2
줄 의 상자 사이의 공간 을 밑줄 로 바꾸어 컨베이어 벨트를 그립니다 .
와 상자에 대한 최종 출력 (l, w, h)
의 [(4, 1, 2), (8, 1, 3), (1, 1, 1)]
것입니다 :
+--------+
+----+ / /|
/ /| +--------+ | +-+
+----+ | | | | / /|
| | +_| | +_+-+ +
| |/__| |/__| |/
+----+___+--------+___+-+
포맷 사양
요소 중 하나가 전체 목록에서 일관성이있는 3 개의 튜플 목록 (폭)을 선택하거나 현재 너비와 길이를 나타내는 2 개의 튜플 목록을 선택할 수 있습니다. 각 선물의 높이. 입력을 임의의 순서와 합리적인 형식으로 입력 할 수 있지만 선물은 입력과 동일한 순서로 표시되어야합니다.
ASCII 예술에 적합한 출력 형식을 선택할 수 있습니다 (함수에서 반환하는 것을 포함).
테스트 사례
이 테스트 사례는 [(l, w, h), ...]
형식 으로 제공 됩니다.
[(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)
++
//|
// |
// |
++ |
|| |
|| |
|| |
+--------+ || |
/ /+_|| +
/ //__|| /
/ //___|| /
+--------+/____||/
+--------+_____++
규칙
- 표준 허점 적용
- 이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.
- 응답이 없습니다
참고 : Advent Of Code 에서이 챌린지 시리즈에 영감을 받았습니다 . 이 사이트와 관련이 없습니다
여기서 첫 번째 도전 과제의 '링크 된'섹션을 보면 시리즈의 모든 도전 과제 목록을 볼 수 있습니다 .