Given three integers >= 2, create an ASCII cube in an orthogonal (cabinet) projection. The three integers represent height, width and depth (measured in visible characters) including the corners. The corners should be 'o's or '+', free choice.
w: 10, h: 5, d: 4 Thus gives:
o--------o
/ /|
/ / |
o--------o |
| | o
| | /
| |/
o--------o
Now, to make this slightly harder, all faces can either be solid, transparent or missing. We order the faces like this:
o--------o
/ /|
/ 2 / |
o--------o 3|
| | o
| 1 | /
| |/
o--------o
---
|2|
-------
|5|1|3|
-------
|4|
---
|6|
---
And supply a list of tokens, S, T or M. The original example is thus:
w 10
h 5
d 4
S S S S S S
o--------o
/ /|
/ / |
o--------o |
| | o
| | /
| |/
o--------o
If one face is transparent, we can see anything that is behind it:
T S S S S S
o--------o
/ /|
/ / |
o--------o |
| o-----| o
| / | /
|/ |/
o--------o
T T T T T T
o--------o
/| /|
/ | / |
o--------o |
| o-----|--o
| / | /
|/ |/
o--------o
For pairs of missing faces, adjacent edges or corners are no longer visible:
M M S S S S
o--------o
/| /|
/ | / |
o | o |
| o-----| o
| / | /
|/ |/
o--------o
M M S S M S
o--------o
| /|
| / |
| o |
o-----| o
/ | /
/ |/
o--------o
Code golf, shortest code wins! Trailing spaces and newlines are fine, you're free to choose input method and input order.
you're free to choose input method and input order
. And as nothing says otherwise, any of the default input/output methods can be used. \$\endgroup\$