Пісочниця
Для цілей поточного завдання куб одиничної довжини виводиться в косій проекції із символами ASCII таким чином:
+-----+
/ /|
+-----+ |
| | +
| |/
+-----+
+
для вершин.-
для ребер X. Одинична довжина вздовж X представлена п'ятьма-
між двома вершинами.|
для ребер Y. Довжина одиниці вздовж Y представлена двома|
між двома вершинами./
для ребер Z. Довжина одиниці вздовж Z представлена однією/
між двома вершинами.- Вершини малюються лише там, де перетинаються всі три площини.
- Краї намальовані лише там, де перетинаються рівно дві площини.
Коли екструдована грань одиниці, вона зміщується на одиницю довжини від вихідного положення та створюються чотири нові краї для кожного напрямку (позитивні та негативні).
Ви можете думати про екструзію як про нанесення осей 3D-декартової системи координат, де кожна вісь представлена у вигляді кубоїди з перетином 1x1 та довжиною n
від (0,0,0)
Витиснене на 1 вздовж X:
+-----------------+
/ /|
+-----------------+ |
| | +
| |/
+-----------------+
Завдання
Давши три числа для осей XYZ, екструдуйте грані одиничного куба симетрично зазначеними величинами та подайте результат символами ASCII, як зазначено вище.
Вхідні дані
x, y, z - негативні числа - довжини екструзії для відповідних осей. 0 означає відсутність екструзії. Вхідними даними можуть бути три числа, список з трьох чисел, трійка, рядок або все, що вам зручно.
Вихідні дані
Креслення куба ASCII після екструзії. Доступні провідні та кінцеві простори віхтів.
Тестові справи
X Y Z
0 0 0
+-----+
/ /|
+-----+ |
| | +
| |/
+-----+
1 0 0
+-----------------+
/ /|
+-----------------+ |
| | +
| |/
+-----------------+
0 0 1
+-----+
/ /|
/ / |
/ / +
/ / /
/ / /
+-----+ /
| | /
| |/
+-----+
1 1 0
+-----+
/ /|
+-----+ |
+---| | +-----+
/ | |/ /|
+-----+ +-----+ |
| | +
| |/
+-----+ +-----+
| | +
| |/
+-----+
2 0 1
+-----+
/ /|
+-----------+ +-----------+
/ /|
+-----------+ +-----------+ |
| / /| | +
| +-----+ | |/
+---------| | +-----------+
| |/
+-----+
1 1 1
+-----+
/ /|-+
+-----+ |/|
+---| | +-----+
/ | |/ /|
+-----+-----+-----+ |
| / /| | +
| +-----+ | |/
+---| | +-----+
| |/| +
+-----+ |/
+-----+
Критерії виграшу
Виграє найкоротше рішення в байтах на кожній мові. Додайте короткий опис використовуваного методу та вашого коду.