CS 100 Spring 2014
Lab 4
Many Loops
Due Monday March, 24th

Using the Processing language/environment answer the following two questions.

1. [4 pts] Consider the following program that uses a while loop. Before running the program

  1. trace the loop execution,
  2. draw on a paper the coordinates that define each roof drawn and
  3. determine how many roofs are drawn.
size(600,200);
background(240, 220, 120);

fill(220, 30, 30);
noStroke();

int roofHeight = 50;
int roofBaseY = 80;
int startX = 40;
int houseX = startX;
int houseSize = 100;
int houseDistance = houseSize + startX;

while(houseX+houseSize < width) {
   triangle(houseX, roofBaseY, 
            houseX+houseSize/2, roofBaseY-roofHeight, 
            houseX+houseSize, roofBaseY);
   houseX = houseX + houseDistance;
}
// reset the value of houseX
// houseX =

boolean boring = false;         
         
if (boring) {         
   fill(130, 130, 220);
} else
   fill(random(128, 255), random(128, 255), random(128, 255));
   
rect(houseX, roofBaseY, houseSize, houseSize);

Now paste the code in a file roofRow.pde and do the following.

2. [4 pts] Write a program palette that creates an output similar to this image.
Hint: The colors are assigned randomely. Another run of the program will produce different colors.

How can you assure that no random color is too close to the background white?

Bonus Draw many times an object made of multiple shapes: denser the pattern the better to practice nested loops. Add some variation to make it more fun.