Usando ASCII imprima una sección de un mosaico de anillo hexagonal.
Aquí hay una pequeña sección:
/\__/\
/_/ \_\
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
\ \__/ /
\/__\/
Aquí hay una sección más grande:
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
Desafío
Dados 2 enteros h
y w
, donde h
está la altura y w
el ancho, genera una hxw
sección de un mosaico de anillo hexagonal.
Ejemplos
Entrada 1
4x4
Salida 1
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
Entrada 2
3x3
Salida 2
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
Entrada 3
1x3
Salida 3
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
Entrada 4
3x6
Salida 4
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
Aclaraciones
- Mi pregunta es similar a esta: Me Want Honeycomb .
- La entrada estará en una sola línea en el formulario
hxw
. - Salida a stdout (o algo similar).
- Este es el código de golf, por lo que la respuesta más corta en bytes gana.
Respuestas:
Befunge, 137 bytes
Parece que he creado algún tipo de arma de mano de ciencia ficción.
Pruébalo en línea!
Explicación
fuente
LUA,
174176156 bytesEl código imprimirá la altura de la cantidad de líneas, no la altura de la cantidad de hexágonos. Agregado
*4
, eso lo solucionó, pero agregó 2 bytes adicionales. Ahorró algunos bytes cambiando el contador de if a módulo y poniendo dosio.read()
s en uno.Usos
io.read()
como entrada.Replica las cadenas ancho-cantidad de veces a través
string:rep(width)
, luego itera altura-cantidad de veces con un ciclo for. Necesario[[]]
(cadenas literales) porque las barras invertidas realmente arruinaron las cosas.Versión antigua:
fuente
Python 2, 180 bytes
Toma la entrada como dos enteros
Entrada:
2,7
Salida:
fuente
Lote, 266 bytes
La
:c
subrutina hace todo el trabajo preliminar de concatenar las piezas juntas para una sola línea; es invocado por:l
4 veces (una por caída, sin embargo, arreglando que:l
los argumentos sean un superconjunto de:c
's) para generar las 4 líneas para cada fila de anillos. También existía la posibilidad de fallar en la última fila de anillos, pero resultó ser 5 bytes más.fuente