Usando ASCII, imprima uma seção de um lado a lado com hexágono.
Aqui está uma pequena seção:
/\__/\
/_/ \_\
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
\ \__/ /
\/__\/
Aqui está uma seção maior:
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
Desafio
Dados 2 números inteiros h
e w
, onde h
é a altura e w
a largura, produz uma hxw
seção de um lado a lado do hexágono.
Exemplos
Entrada 1
4x4
Saída 1
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
Entrada 2
3x3
Saída 2
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
Entrada 3
1x3
Saída 3
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
Entrada 4
3x6
Saída 4
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
Esclarecimentos
- Minha pergunta é semelhante a esta: Me Want Honeycomb .
- A entrada estará em uma única linha no formulário
hxw
. - Saída para stdout (ou algo semelhante).
- Este é o código-golfe, pelo que a resposta mais curta em bytes vence.
code-golf
ascii-art
kolmogorov-complexity
hexagonal-grid
tiling
Bobas_Pett
fonte
fonte
Respostas:
Anterior, 137 bytes
Parece que eu criei algum tipo de arma de mão scifi.
Experimente online!
Explicação
fonte
Lua,
174176156 bytesO código imprimiria a quantidade de linhas em altura, não a quantidade de hexágonos em altura. Adicionado
*4
, que corrigiu, mas adicionou 2 bytes extras. Economizou alguns bytes alterando o contador de se para módulo e colocando doisio.read()
s em um.Usa
io.read()
como entrada.Replica as seqüências de caracteres largura-vezes
string:rep(width)
, e itera a altura-vezes com um loop for. Necessário[[]]
(cadeias literais) porque as barras invertidas realmente estragaram tudo.Versão antiga:
fonte
Python 2, 180 bytes
Recebe entrada como dois números inteiros
Entrada:
2,7
Resultado:
fonte
Lote, 266 bytes
A
:c
sub-rotina faz todo o trabalho de concatenar as peças juntas para uma única linha; é chamado por:l
4 vezes (um por queda, organizando:l
os argumentos de s para um superconjunto de:c
s) para gerar as 4 linhas para cada linha de anéis. Havia também a possibilidade de cair na última linha de anéis, mas acabou sendo 5 bytes mais.fonte