Escriba un programa o función que dibuje un árbol de árboles, construyendo así un bosque.
Los árboles se dibujan como apilar una pirámide. La primera fila (superior) contiene 1
árbol, la siguiente fila abajo contiene 2
(para un total de 3
), la siguiente contiene 3
(para un total de 6
), y así sucesivamente. Si no hay suficientes árboles para completar una fila completa, llénela a la izquierda y deje vacíos los puntos a la derecha. Además, los árboles de nivel inferior se superponen ligeramente a los árboles de nivel superior debido a su ubicación.
Este es un bosque de tamaño 1
/\
//\\
///\\\
||
||
Este es un bosque de tamaño 2
/\
//\\
/\///\\\
//\\ ||
///\\\||
||
||
Este es un bosque de tamaño 3
/\
//\\
/\///\\\/\
//\\ || //\\
///\\\||///\\\
|| ||
|| ||
Este es un bosque de tamaño 4
/\
//\\
/\///\\\/\
//\\ || //\\
/\///\\\||///\\\
//\\ || ||
///\\\|| ||
||
||
Este es un bosque de tamaño 5
(tenga en cuenta que la parte superior del quinto árbol está cubriendo el tronco del primer árbol)
/\
//\\
/\///\\\/\
//\\ || //\\
/\///\\\/\///\\\
//\\ || //\\ ||
///\\\||///\\\||
|| ||
|| ||
(omita algunos)
Este es un bosque de tamaño 8
(que extiende el patrón)
/\
//\\
/\///\\\/\
//\\ || //\\
/\///\\\/\///\\\/\
//\\ || //\\ || //\\
/\///\\\/\///\\\||///\\\
//\\ || //\\ || ||
///\\\||///\\\|| ||
|| ||
|| ||
y así.
Entrada
Un número entero positivo solo en cualquier formato conveniente , n > 0
.
Salida
Una representación de arte ASCII del bosque, siguiendo las reglas anteriores. Las nuevas líneas iniciales / finales u otros espacios en blanco son opcionales, siempre que los árboles se alineen correctamente.
Reglas
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
n
¿cuáles son las posiciones de los árboles?Respuestas:
Haskell 310 bytes
Llámalo con
w 5
, por ejemplo.Aquí el código sin comprimir:
fuente
JavaScript (ES6),
357297276 bytesEditar: guardado 21 bytes gracias a @KritixiLithos.
fuente
repeat
, puede cambiarblah.repeat(val)
ablah[w="repeat"]
(val) y luego puede cambiar las ocurrencias posteriores derepeat
a solo[w](val)
para guardar bytesrepeat
está dentro delfor
bucle y no se ejecutarán=1
, pero aún así pude guardar 21 bytes.C ++ (en Windows),
330312308304303 bytesLlamar con:
fuente
C (en Windows),
297295294 bytesSimilar a mi respuesta de C ++, pero publiqué esto porque es algo más corto en C.
fuente
#import
es una extensión (obsoleta) de GCC. Apto para jugar al golf, sin embargo.<stdio.h>
y asumir automáticamente que una variable global seaint
o una función que regreseint
.Javascript
418377 bytesGracias a @Kritixi Lithos por ayudar al golf con 39 bytes
Pruébalo en línea
fuente
repeat
, puede cambiarblah.repeat(val)
ablah[w="repeat"](val)
y luego puede cambiar las ocurrencias posteriores derepeat
a solo[w](val)
para guardar bytes