Qualquer hexágono regular pode ser revestido com diamantes, por exemplo:
______
/_/_/\_\
/_/\_\/\_\
/\_\/_/\/_/\
\/_/\_\/_/\/
\_\/_/\_\/
\_\_\/_/
Consideraremos o tamanho acima de um ladrilho 1
(já que os lados dos diamantes são feitos de um /
ou de \
cada). O mesmo tamanho do tamanho 2
seria semelhante a:
____________
/ / /\ \
/___/___/ \___\
/ /\ \ /\ \
/___/ \___\/ \___\
/\ \ / /\ / /\
/ \___\/___/ \/___/ \
\ / /\ \ / /\ /
\/___/ \___\/___/ \/
\ \ / /\ \ /
\___\/___/ \___\/
\ \ \ / /
\___\___\/___/
Sua tarefa é receber uma peça de arte ASCII (de tamanho 1
) como entrada, juntamente com um número inteiro positivo N
(em decimal ou unário), especificando o tamanho da saída desejada. Em seguida, você deve produzir uma versão ampliada do mesmo lado a lado.
Observe que o hexágono pode ser de qualquer tamanho e tão pequeno quanto 1x1x1 (contendo três diamantes).
Nem a entrada nem a saída devem conter espaços à direita, nem mais espaços à esquerda do que o necessário para alinhar a forma do hexágono. Opcionalmente, entrada e saída podem conter uma nova linha final à direita (essa opção não precisa ser a mesma para entrada e saída).
Você pode escrever um programa ou função, recebendo entrada via STDIN (ou alternativa mais próxima), argumento da linha de comando ou argumento da função e emitindo o resultado via STDOUT (ou alternativa mais próxima), valor de retorno da função ou parâmetro da função (saída).
Isso é código de golfe, então a resposta mais curta (em bytes) em vitórias.
Exemplo de inclinações
Aqui estão algumas sugestões de sugestões que você pode usar para testar seu envio.
__
/_/\
\_\/
____
/_/\_\
/\_\/_/\
\/_/\_\/
\_\/_/
______
/_/_/\_\
/_/\_\/\_\
/\_\/_/\/_/\
\/_/\_\/_/\/
\_\/_/\_\/
\_\_\/_/
________
/_/\_\_\_\
/\_\/\_\_\_\
/\/_/\/_/_/\_\
/\/\_\/_/_/\/\_\
\/\/_/\_\_\/\/_/
\/\_\/_/\_\/_/
\/\_\_\/_/_/
\/_/_/_/_/
O seguinte fragmento contém as saídas para as entradas correspondentes N = 1
através N = 6
.
N-1
linhas vazias à esquerda. :(