A112 Fall 1997

Christmas Tree Example

We wish to make a program that generates ASCII-art Christmas trees of varying sizes. A tree of size 3 follows:
   *
  ***
  ***
 *****
 *****
*******
*******
  ***
  ***
  ***
Here's the program:
var title = "Christmas Tree";
var author = "Chris Haynes";

function main() {
  // Fri Dec 05 17:51:24 Central Standard Time 1997
  // make ASCII tree art of an Xmas tree

  var sizeString = "";  // string: entered tree size
  var size = 0;  // integer: tree size
  var i = 0;  // integer: index
  var j = 0;  // integer: index
  var trunkSize = 0; // float: size of tree trunk
  sizeString = prompt("What is the tree size?");
  size = parseInt(sizeString);
  drawLine(size, 1); // top of tree
  for (i = 1; i <= size; i++) {
    drawLine(size-i, i*2+1);
    drawLine(size-i, i*2+1);
  } // end for
  trunkSize = Math.round((size-1)/3);
  for (i = 0; i <= size/3+1; i++) {
    drawLine(size-trunkSize, trunkSize*2+1);
  } // end for
} // end function

function drawLine(numBlanks, numDraw) {
  repeatDraw(" ", numBlanks);
  repeatDraw("*", numDraw);
  formOutput("\n");
} // end function

function repeatDraw(string, count) {
  var i = 0; // integer: index
  for (i = 1; i <= count; i++) {
    formOutput(string);
  } // for
} // end function