DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Advent.js🎅🏼| #4: ¡Es hora de poner la navidad en casa!

¡Es hora de poner la navidad en casa!

¡Es hora de poner el árbol de navidad en casa! 🎄

Para ello vamos a crear una función que recibe la altura del árbol, que será un entero positivo del 1 a, como máximo, 100.

Si le pasamos el argumento 5, se pintaría esto:

____*____ ___***___ __*****__ _*******_ ********* ____#____ ____#____ 
Enter fullscreen mode Exit fullscreen mode

Creamos un triángulo de asteríscos * con la altura proporcionada y, a los lados, usamos el guión bajo _ para los espacios. Es muy importante que nuestro árbol siempre tenga la misma longitud por cada lado.
Todos los árboles, por pequeños o grandes que sean, tienen un tronco de dos líneas de #.

Otro ejemplo con un árbol de altura 3:

__*__ _***_ ***** __#__ __#__ 
Enter fullscreen mode Exit fullscreen mode

Ten en cuenta que el árbol es un string y necesitas los saltos de línea \n para cada línea para que se forme bien el árbol.

Completa el reto!


Mi solución:


Puedes seguir a @midudev y estar pendiente de los retos de Advent.js

Top comments (2)

Collapse
 
kylety1990 profile image
kylety1990

function createTree(number){
let tree = '';
let counter = 1;
const objTree = {
background : '_',
branch : '*',
trunk : '#',
}
const {background, branch, trunk} = objTree;
const data = Array.from(Array(number).keys()).reverse();

data.map(el=>{ tree += file(branch, background, el, counter); counter += 2; }) 
Enter fullscreen mode Exit fullscreen mode

tree += file(trunk, background, data.length -1 , 1);
tree += file(trunk, background, data.length -1, 1);
return tree
}

function file(branch, background, number, counter){
return ${background.repeat(number)}${branch.repeat(counter)}${background.repeat(number)}\n

}

console.log(createTree(10))

Collapse
 
alexjamesmx profile image
Alejandro Santiago
export default function createXmasTree(height) { let string = "" console.log(height) for(let i = 0; i < height; i++){ for(let x= 0 ; x < height-i-1 ; x ++){ string += "_" } for(let x= 0 ; x < ((i+1)*2)-1 ; x ++){ string += "*" } for(let x= 0 ; x < height-i-1 ; x ++){ string += "_" } string += "\n" } for(let i = 0 ; i < 2; i++){ if(i==1) string += "\n" for(let i = 0 ; i < height-1;i++){ string += "_" } string += "\#" for(let i = 0 ; i < height-1;i++){ string += "_" } } console.log(string) return string } 
Enter fullscreen mode Exit fullscreen mode