bac à sable
Pour les besoins de la tâche en cours, un cube de longueur unitaire est rendu en projection oblique avec des symboles ASCII comme suit:
+-----+
/ /|
+-----+ |
| | +
| |/
+-----+
+
pour les sommets.-
pour les X bords. L'unité de longueur le long de X est représentée par cinq-
entre deux sommets.|
pour les bords en Y. L'unité de longueur le long de Y est représentée par deux|
entre deux sommets./
pour les bords Z. L'unité de longueur le long de Z est représentée par une/
entre deux sommets.- Les sommets ne sont tracés que là où les trois plans se coupent.
- Les bords ne sont dessinés que là où exactement deux plans se croisent.
Lorsqu'une face d'unité est extrudée, elle est décalée d'une longueur d'unité par rapport à sa position d'origine et quatre nouvelles arêtes sont créées pour chaque direction (positive et négative).
Vous pouvez imaginer que l'extrusion consiste à dessiner les axes d'un système de coordonnées cartésien 3D, chaque axe étant représenté par un cuboïde avec une section transversale de 1x1 et une n
distance de (0,0,0).
Extrudé par 1 le long de X:
+-----------------+
/ /|
+-----------------+ |
| | +
| |/
+-----------------+
Tâche
A partir de trois nombres pour les axes XYZ, extrudez les faces d'un cube unité de manière symétrique par les quantités indiquées et restituez le résultat avec les symboles ASCII comme spécifié ci-dessus.
Contribution
x, y, z - nombres non négatifs - longueurs d'extrusion pour les axes respectifs. 0 signifie pas d'extrusion. L'entrée peut être trois chiffres, une liste de trois chiffres, un triple, une chaîne ou tout ce qui vous convient.
Sortie
Le dessin ASCII du cube après extrusion. Les espaces libres de début et de fin sont autorisés.
Cas de test
X Y Z
0 0 0
+-----+
/ /|
+-----+ |
| | +
| |/
+-----+
1 0 0
+-----------------+
/ /|
+-----------------+ |
| | +
| |/
+-----------------+
0 0 1
+-----+
/ /|
/ / |
/ / +
/ / /
/ / /
+-----+ /
| | /
| |/
+-----+
1 1 0
+-----+
/ /|
+-----+ |
+---| | +-----+
/ | |/ /|
+-----+ +-----+ |
| | +
| |/
+-----+ +-----+
| | +
| |/
+-----+
2 0 1
+-----+
/ /|
+-----------+ +-----------+
/ /|
+-----------+ +-----------+ |
| / /| | +
| +-----+ | |/
+---------| | +-----------+
| |/
+-----+
1 1 1
+-----+
/ /|-+
+-----+ |/|
+---| | +-----+
/ | |/ /|
+-----+-----+-----+ |
| / /| | +
| +-----+ | |/
+---| | +-----+
| |/| +
+-----+ |/
+-----+
Critères gagnants
La solution la plus courte en octets dans toutes les langues gagne. Veuillez ajouter une brève description de la méthode utilisée et votre code.