towerBuilder
by trentHarlem
JavaScript
function towerBuilder(n) {
let tower = []
for (let i = 0; i < n; i++) {
const spaces = '-'.repeat(n - i - 1);
tower.push(spaces + '*'.repeat(i + i + 1) + spaces)
}
console.log(tower)
return tower.join(`\n`)
}
const towerBuilder6 = n => [...Array(n)].map((_,i) => ' '.repeat(n - i - 1)+ '*'.repeat(i + i + 1) + ' '.repeat(n - i - 1))
//console.log(towerBuilder6(5))
const towerBuilder5 = n => [...Array(n)].map((_, i) => " ".repeat(n - 1 - i) + "*".repeat(i * 2 + 1) + " ".repeat(n - 1 - i))
//console.log(towerBuilder4(5))
//console.log(towerBuilder5(5))
//('*'.repeat(i))
//return tower.map(b => b.padStart(b.length-1 + Math.floor((pad - b.length) / 2)).padEnd(pad)).join(`\n`)
// return tower.map(b => b.padStart(b.length + Math.floor((pad - b.length) / 2)).padEnd(pad)).join(`\n`)
//return tower.join(`\n`)
//console.log(towerBuilder(5))
//console.log(towerBuilder(1))
//console.log(towerBuilder(2))
//const towerBuilder = n => Array.from(n).map((n,i) => i)
/* const towerBuilder = n => {
//const tower = new Array(n).map((v,i) => (i>1)?v=i+2:v=1 )
const tower = [].map((v, i) => {
console.log(tower)
(i > 1) ? i + 2 : 1
})
return tower
}
// v=['*']
// .fill('*')
//. (i % 2 !== 0)
console.log(towerBuilder(5))
*/
function towerBuilder2(n) {
const block = '*'
let odds = []
let tower = []
for (let i = 1; i < n + n; i += 2) {
odds.push(i)
tower.push(block.repeat(i))
}
const pad = odds.slice().pop() // use last index of tower
return tower.map(b => b.padStart(b.length + Math.floor((pad - b.length) / 2), ' ').padEnd(pad-1, ' ')).join(`\n`)
}
console.log(towerBuilder2(5))
//console.log('pad',pad)
//Math.floor(pad/2)
//parts = parts.map(s => s.padStart(s.length + Math.floor((pad - s.length) / 2), ' ').padEnd(max, ' '));
//sample output tower 3
/* [
' * ',
' *** ',
'*****'
] */
//console.log(n,i,v)
function towerBuilder4(n) {
return Array.from(function(n, i) {
const spaces = ' '.repeat(n - i -...