Desafio
Escreva um programa que utilize uma matriz 11x11 de números inteiros e construa uma construção de bloco ASCII 3D, em que cada valor na matriz represente a altura de uma coluna de blocos nas coordenadas correspondentes à posição da matriz. Uma altura negativa é uma coluna "flutuante" - apenas o bloco superior é visível.
Exemplo
__________________
___ /\__\__\__\__\__\__\
3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\__\ /\/\__\__\__\__\__\__\
2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\/__/ /\/\/__/__/__/__/__/__/
2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\/\__\ /\/\/\__\ /\/\/__/
1, 0, 0, 7,-7,-7,-7,-7, 7, 0, 0, \/\/\__\ /\/\/\/__/ /\/\/__/
0, 0, 0, 7,-7,-7,-7,-7, 7, 0, 0, \/\/__/ /\/\/\/\__\ /\/\/__/
0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, \/\__\ /\/\/\/\/__/ /\/\/__/
0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, \/__/ \/\/\/\/\__\_ \/\/__/
1, 0, 0, 4, 3, 2, 1, 0, 0, 0, 1, \/\/\/\/__/_\_ \/__/
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ___ \/\/\/__/__/_\_ ___
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /\__\ \/\/__/__/__/_\ /\__\
1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, \/\__\ \/__/__/__/__/ \/\__\
\/\__\_________ ______\/\__\
\/\__\__\__\__\ /\__\__\__\__\
\/__/__/__/__/ \/__/__/__/__/
Entrada
A entrada será uma lista de 121 números inteiros, lida a partir de stdin (a escolha do separador é sua) ou transmitida como uma matriz (pode ser 1D ou 2D).
As alturas estarão no intervalo de -11 a 11.
Resultado
A construção gerada pode ser gravada em stdout, exibida diretamente na tela ou retornada como uma sequência separada por nova linha.
Os espaços em branco à esquerda e à direita são permitidos.
Regras de construção
A forma de um bloco 3D individual é assim:
___
/\__\
\/__/
E um cubo 2x2x2 de blocos é assim:
______
/\__\__\
/\/\__\__\
\/\/__/__/
\/__/__/
Quando os blocos se sobrepõem, um bloco mais alto tem precedência sobre o mais baixo, os blocos da frente têm precedência sobre os que estão mais atrás, e os blocos à esquerda têm precedência sobre os da direita. O único caso especial é que a linha superior de um bloco nunca deve sobrescrever nenhum caractere não espacial por trás dele.
A interpretação das alturas das colunas pode ser melhor explicada olhando-se uma representação 2D do lado.
HEIGHT: 1 2 3 -3 -2 -1
__ __
__ |__| |__| __
__ |__| |__| |__| __
|__| |__| |__| |__|
Casos de teste
Se você quiser experimentar sua solução com mais algumas entradas, reuni alguns casos de teste aqui .
Ganhando
Isso é código-golfe , então o envio mais curto (em bytes) vence.