(com desculpas a Jim West pelo título e inspirado aleatoriamente na representação textual da Cisco de seu logotipo: .:|:.:|:.
pelo conceito)
Dado um número inteiro de entrada 1 <= n <= 255
, produza uma representação de arte ASCII de uma ponte suspensa de distância n
seguindo as regras de construção abaixo:
- O início e o fim da ponte (não contados à
n
distância) são sempre-|
e|-
, portanto, a ponte pode se conectar adequadamente às rodovias próximas a ela. - A ponte não se estende para baixo (o nível da estrada, composto pela
-
linha, é a linha inferior). - Pode haver no máximo duas peças de estrada
--
seguidas; qualquer extensão maior requer cabos de suspensão para suporte. - Os cabos de suspensão se
\
estendem da estrada até as torres|
em linhas retas. - As torres
|
devem ser altas o suficiente para suportar os cabos de suspensão adjacentes, mas não mais altas. - A ponte deve ser equilibrada da esquerda para a direita sobre o ponto do meio, favorecendo as seções centrais sempre que possível.
- Todas as opções acima devem resultar em uma minimização dos cabos, mas, para ficar claro, o número de cabos de suspensão deve ser minimizado enquanto ainda segue as regras acima.
Para fornecer uma representação visual, eis as saídas esperadas para n = 1, 2, 3, ... 15
-
1
-|-|-
2
-|--|-
3
-|\-/|-
4
-|\--/|-
5
|\ /|
-|-\-/-|-
6
|\ /|
-|-\--/-|-
7
|\ /|
| \ / |
-|--\-/--|-
8
|\ /|
| \ / |
-|--\--/--|-
9
|\ /|
| \ / |
| \ / |
-|\--\-/--/|-
10
|\ /|
| \ / |
| \ / |
-|\--\--/--/|-
11
|\ /|
| \ / |
| \ / |
|\ \ / /|
-|-\--\-/--/-|-
12
|\ /|
| \ / |
| \ / |
|\ \ / /|
-|-\--\--/--/-|-
13
|\ /|
| \ / |
| \ / |
|\ \ / /|
| \ \ / / |
-|--\--\-/--/--|-
14
|\ /|
| \ / |
| \ / |
|\ \ / /|
| \ \ / / |
-|--\--\--/--/--|-
15
|\ /|
| \ / |
| \ / |
|\ \ / /|
| \ \ / / |
| \ \ / / |
-|\--\--\-/--/--/|-
Entrada
Um número inteiro positivo único em qualquer formato conveniente , n > 9
.
Resultado
A ponte de arte ASCII seguindo a técnica de construção acima.
Regras
- Novas linhas à esquerda ou à direita ou espaços em branco são opcionais, desde que os próprios caracteres da ponte estejam alinhados corretamente.
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- Se possível, inclua um link para um ambiente de teste on-line para que as pessoas possam experimentar seu código!
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.