Escreva um programa ou função que receba um número inteiro positivo e imprima ou retorne uma representação de arte ASCII de uma seta de tiro com arco , dimensionada de acordo com a entrada.
Se a entrada é 1
a saída é
/\
/ \
\__/
||
||
||
||
||
||
||
||
/||\
/ || \
/ || \
// \\
/ \
Se a entrada é 2
a saída é
/\
/ \
/ \
/ \
\ /
\____/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
/| |\
/ | | \
/ | | \
/ | | \
/ | | \
/ |__| \
/ / \ \
/ / \ \
// \\
/ \
Se a entrada é 3
a saída é
/\
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\______/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
/| |\
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ |____| \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
// \\
/ \
Se a entrada é 4
a saída é
/\
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\________/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
/| |\
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ |______| \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
// \\
/ \
O padrão continua ativado para números de entrada maiores - a seta é aumentada de acordo.
Observe que, para qualquer entrada N:
- A ponta da seta é um pentágono com sublinhados 2 × N na base, N barra em cada um dos lados que se estendem a partir da base e barra 2 × N nos dois lados que formam a ponta da seta.
- O eixo (incluindo a peça dentro do alongamento) consiste em 11 × N linhas de duas barras verticais separadas por 2 × (N-1) espaços. A última linha possui sublinhados em vez de espaços.
- O alongamento envolve as linhas inferiores 3 × N do eixo. Duas linhas de barras 2 × N se estendem na diagonal para baixo de ambos os lados do eixo e são unidas a colunas verticais de barras.
- A seta completa tem 16 × N linhas de altura e 6 × N caracteres de largura.
Na sua saída, não deve haver linhas vazias antes da ponta da seta e apenas até uma nova linha à direita.
Nenhuma das linhas de saída deve ter espaços iniciais desnecessários (a borda esquerda do alongamento deve estar o mais à esquerda possível), mas qualquer uma das linhas pode ter um número maior de espaços finais.
O menor envio em bytes vence.
Respostas:
Pitão,
149147146144146Editar 2015-9-23: teve um erro, corrigido por 2 bytes. Pode ser possível diminuir, não tenho tempo agora.
Ainda parece muito longo para uma resposta de Pyth.
Explicação (quase atualizada)
Basicamente, giro a transposição da seta, pois seu formato de linha é muito mais simples. Além disso, eu apenas giro uma metade e depois a inverto para economizar muitos bytes.
fonte
Perl, 298 bytes
Multi-linha:
Resultado:
Obrigado a Dom Hastings por me ajudar a economizar 5 (e contar) bytes
fonte
$w=<>
declaração para a primeira vez que a usarfor$y(0..($w=<>)*16-1){
e muitos dos colchetes podem ser removidos (alguns alteram a saída, mas acho que você está passando por eles de qualquer maneira!). Também o seu'_'
pode ser apenas um literal_
. Espero que ajude!Julia, 452 bytes
Essa resposta não é muito inspirada, e eu não a joguei além do óbvio. Pretendo que isso seja uma pontuação para outras pessoas vencerem.
Experimente:
ungolfed:
fonte
Ruby, 233
Estou particularmente satisfeito com a técnica envolvente que usei para desenhar tudo
\
na cabeça com uma única expressão (e da mesma forma para/
)Ungolfed in program program
fonte