Instrucciones
Santa está experimentando con nuevos diseños de regalos y necesita tu ayuda para visualizarlos en 3D.
Tu tarea es escribir una función que, dado un tamaño n (entero), genere un dibujo de un regalo en 3D utilizando caracteres ASCII.
Las líneas de los regalos se dibujan con #
y las caras con el símbolo que nos pasan como parámetro:
drawGift(4, '+')
/*
####
#++##
#++#+#
####++#
#++#+#
#++##
####
*/
drawGift(5, '*')
/*
#####
#***##
#***#*#
#***#**#
#####***#
#***#**#
#***#*#
#***##
#####
*/
drawGift(1, '^')
/*
#
*/
[!IMPORTANT] Nos han dicho que siempre hay que dejar un salto de línea al final del dibujo.
Nota: Ten en cuenta que, en los tests, la primera línea se ve empujada por el caracter ".
function drawGift (size, symbol) {
if (size < 2) return "#\n"
let top = ""
for (let i = 0; i < size; i++) {
top += i === 0
? " ".repeat(size - i - 1) + "#".repeat(size) + "\n"
: " ".repeat(size - i - 1) + "#" + symbol.repeat(size - 2)
+ "#" + symbol.repeat(i - 1) + "#" + "\n"
}
const center = "#".repeat(size) + symbol.repeat(size - 2) + "#"
const bottom = top.split("\n").map(a => a.trimStart())
.reverse().join("\n") + "\n"
return top + center + bottom
}
Puntaje: 250