Skip to content

Latest commit

 

History

History
56 lines (42 loc) · 1.34 KB

04.md

File metadata and controls

56 lines (42 loc) · 1.34 KB

⬅️ Regresar

04 - ¡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:

____*____
___***___
__*****__
_*******_
*********
____#____
____#____

Creamos un triángulo de asteriscos * 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:

__*__
_***_
*****
__#__
__#__

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.



Solución

export default function createXmasTree(height) {
	return [...Array(height)].map((_, i) => {
		const spaces = '_'.repeat(height - i - 1);
		const stars = '*'.repeat(i * 2 + 1);
		return spaces + stars + spaces + '\n';
	})
		.join('')
		.concat(('_'.repeat(height - 1) + '#' + '_'.repeat(height - 1) + '\n').repeat(2))
		.trim()
}

⬅️ Regresar