Escreva o programa mais curto possível que capte um conjunto de números inteiros positivos distintos e produza uma renderização ASCII de hexágonos concêntricos com esses comprimentos laterais, feitos de barras, sublinhados, espaços e novas linhas.
O programa mais curto em bytes, contado por https://mothereff.in/byte-counter, vence.
Exemplos
(Eles ficam melhores com menos espaçamento entre linhas.)
Se a entrada é 1
a saída, o hexágono deve ter o comprimento lateral 1:
__
/ \
\__/
Observe que dois sublinhados são usados na parte superior e inferior do hexágono, para que seja melhor proporcionado.
Em geral, o tamanho do hexágono N contém N barras em cada lado angular e 2 * N sublinhados na parte superior e inferior.
Se a entrada é 1 2
a saída, devem ser os hexágonos concêntricos com comprimento lateral 1 e 2:
____
/ __ \
/ / \ \
\ \__/ /
\____/
Se a entrada for 1 3
a saída deve ser:
______
/ \
/ __ \
/ / \ \
\ \__/ /
\ /
\______/
Se a entrada for 1 3 2
a saída deve ser:
______
/ ____ \
/ / __ \ \
/ / / \ \ \
\ \ \__/ / /
\ \____/ /
\______/
etc.
Regras de E / S
A entrada deve vir da linha de comando ou do stdin, mas pode estar no formato que for mais conveniente.
Por exemplo, você pode fornecer cada número como um argumento de linha de comando: > myprogram 1 3 2
ou pode solicitar ao usuário que insira os números como uma lista pré-formatada:[1, 3, 2]
.
A saída deve ir para stdout ou o equivalente mais próximo do seu idioma.
Regras adicionais
- A entrada sempre será um conjunto de números inteiros positivos distintos, não necessariamente em qualquer ordem .
- A saída deve ...
- não contém nenhum caractere além de
/\ _
e novas linhas. - não tem espaços à direita ou espaços à esquerda desnecessários.
- não contém novas linhas iniciais estranhas, mas pode ter uma nova linha posterior opcional .
- não contém nenhum caractere além de
- Se nada for inserido, nada será gerado (exceto possivelmente uma nova linha).
- Se ajudar, você pode assumir que os números inteiros de entrada são menores que 2 16 .
1
(ou qualquer número) refere-se ao hexágono com comprimento lateral de 1. (Com a ressalva de que 1 barra = 2 sublinhados.) Portanto 1
, sempre se referirá ao hexágono mais interno.
1
se ao hexágono mais interno ou mais externo?