The challenge
The shortest code by character count, that will output playing bricks tower series according to user input.
The input will be a series of numbers (positive, negative and zero) that represents the height of the current cube tower following their index. A height of 0 means no tower and is spaced.
A cube tower is composed of stacked cubes. If the input number on the current index is positive, the cubes go up, if the input number is negative, the cubes go down. A single cube is drawn using the 4 following lines:
__ /__ /| | | | |___|/
Cubes are 3D - this means they hide each other when two towers are placed next to each other, generating fake perspective.
All input can be assumed to be valid and without errors - Each number is separated with a white space on a single line, with at least one number.
Test cases
Input: 2 -3 -2 1 2 -1 Output: __ __ /__ /| /__ /| | | | _| | | |___|/| /__|___|/| | | |__ _| | | |__ |___|/__ /__|___|___|/__ /| | | | | | | | |___|___|/| |___|/ | | | | |___|___|/ | | | |___|/
Input: 1 2 3 4 -2 4 3 2 1 Output: __ __ /__ /| /__ /| _| | | | | |__ /__|___|/| |___|/__ /| _| | | | | | | |__ /__|___|___|/| |___|___|/__ /| _| | | | | | | | | |__ /__|___|___|___|/| |___|___|___|/__ /| | | | | | |_| | | | | | |___|___|___|___|/__|___|___|___|___|/ | | | |___|/| | | | |___|/
Input: 1 3 3 7 0 -2 -2 Output: __ /__ /| | | | |___|/| | | | |___|/| | | | |___|/| __ _| | | /__ /__|___|/| | | | | | |___|___|___|/| _| | | | | /__|___|___|___|/| | | | | | | __ __ |___|___|___|___|/ /__ /__ /| | | | | |___|___|/| | | | | |___|___|/
Code count includes input/output (i.e full program).
Perl 157 characters
This entry was inspired by gnibbler's Ruby entry, including the part about embedding the cube in the code. Also thanks to Kinopiko for schooling me on the 4 arg version of
substr
.Explanation:
Line 1: Choose where cubes go
Lines 2-5: Put cubes where cubes go, print