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 -...