//// CST-112 FINAL EXAM -- Jennifer Blomberg //// String student = " Jennifer Blomberg "; String title = "CST-112 FINAL EXAM: " + student; String news= "Click to move objects"; //////// GLOBAL DECLARATIONS //////// int score = 1; float left = 10, top = 50, right = 750, bottom = 550; Animal Lady, cat, bird, bird1; Animal submarine; Animal ant; int numbugs=5; // array of bugs // Animal[] bugs= new Animal[numbugs]; // +++++ ADD YOUR DECLARATIONS HERE, // +++++ to create array of 5 bugs. //////// SKETCH FUNCTIONS //////// void setup() { //// Setup. size( 800, 600 ); right = width - 10; bottom = height - 10; reset(); } void reset() { //// initialize the menagarie. cat = new Animal( 4, 4, 0, 50, 30, 20, 4, 0 ); cat.setRGB( 255, 150, 255 ); cat.x = 100; cat.y = 100; stroke(0); cat.name = "cat"; // Lady = new Animal(4, 6, 0, 40, 80, 0, 2, 1 ); Lady.setRGB( 100, 0, 100 ); Lady.x = 200; Lady.y = 200; Lady.name = "Lady"; // bird = new Animal( 3, 0, 0, 50, 15, 12, 0, 0 ); bird.setRGB( 50, 50, 250 ); bird.x = 300; bird.y = 300; // second bird // bird1 = new Animal( 3, 0, 0, 50, 15, 12, 0, 0 ); bird1.setRGB( 50, 150, 100 ); bird.head = 12; bird1.x = 300; bird1.y = 300; // submarine = new Animal( 2, 0, 1, 50, 15, 12, 0, 0 ); submarine.setRGB( 255, 255, 0 ); submarine.x = 400; submarine.y = 300; submarine.name = "Yellow Submarine" ; // ant = new Animal( 6, 0, 3, 15, 45, 255, 50, 50 ); ant.y = bottom ; //// Creat five bugs //// for (int i=0; i right-20 ) { // Float off end; new ant. bugs[i]= new Animal( 6,0,3, 15,45, 255,0,0 ); bugs[i].y= bottom; } } //// Cat eats a bug //// if ( cat.hit( bugs[i] ) ) { background(0, 255, 255); // Flash CYAN // makeNews( "Cat ate a bug. (+10 points) " ); score +=10; numbugs--; // Remove a bug } } // ant.move(); if (ant.y < top+20) { ant.dy=0; // Dead ant -- Stop rising. ant.setRGB( 150, 50, 50 ); // Change color if (ant.x > right - 20 ) { // Float off end; new ant. ant = new Animal( 6, 0, 3, 15, 45, 255, 0, 0 ); ant.y = bottom; } } //// Move the bugs -- same as the ant. // ++++++++++ YOUR CODE GOES HERE. +++++++++++++ // } void crash() { //// Check for collisions //// // Lady kicks the cat (+50) -- move cat to right side. if (Lady.hit( cat ) ) { cat.x=right-20; score += 50; } // cat catches bird (-100) -- move bird to left side. if (cat.hit( bird ) ) { bird.x=left+20; score += -100; } // bird hits Lady (-50) -- move Lady to random position. if (bird.hit( Lady ) ) { Lady.x=left+random(-0.2,2); score += -50; } // bird catches any bug (+10) -- start new bug at bottom for(int i = 0; i right ) dx = -dx; if (y < top || y > bottom) dy = -dy; //// x += dx; y += dy; } void show() { //// Draw the Animal on the screen //// rectMode( CENTER ); ellipseMode( CENTER ); fill(r, g, b); //// Front & back depend on dx //// float front = x + wide/2, rear = x - wide/2; if (dx < 0) { front = x - wide/2; rear = x + wide/2; } //// Draw different shapes. //// if (shape == 0) { ellipse( x, y, wide, tall ); } else if (shape == 4) { rect( x, y, wide, tall ); } else if (shape == 3) { triangle( front, y, rear, y - tall/2, rear, y + tall/2 ); } else if (shape == 2) { // ++++++++++ ADD YOUR CODE HERE. +++++++++++++ // } else if (shape == 6) { ellipse(x, y - tall * 2/3, wide, tall/3 ); ellipse(x, y - tall/3, wide, tall/3 ); ellipse(x, y, wide, tall/3 ); reach= 8; } else { // ++++++++++ ADD YOUR CODE HERE. +++++++++++++ // text( "Found you", x, y ); } //// Head if (head > 0) { // Head (if any) // ellipseMode( CENTER ); ellipse( front, y - tall/2 - head/2, head, head ); // Head at front rect( rear, y - tall/2, 0, 0 ); // Tail at rear } limbs(); //// Name fill( 256 - r, 256 - g, 256 - b ); text( name, x - wide/3, y - tall/6 ); } void limbs() { //// Legs & Arms //// float legX = x - wide/2; // First leg is at the left float legY = y + tall/2; // Legs start at bottom of rectangle. if (legs > 0) { line( legX,legY, legX,legY+reach ); // First leg. } if (legs > 1) { float legSpacing = wide / (legs - 1); for (int i = 1; i < legs; i++) { legX = legX + legSpacing; line( legX, legY, legX, legY + reach ); // First leg. } } //// Pairs of arms. //// float armY = y - tall/2; // Arms start at top of rectangle. float armSpacing = tall / (armpairs); for (int i = 0; i < armpairs; i++) { line( x - wide/2, armY, x - reach - wide/2, armY ); // Left arm line( x + wide/2, armY, x + reach + wide/2, armY ); // Right arm armY = armY + armSpacing; } } boolean hit( float x, float y ) { //// Return true iff x,y is inside this box. if (x < this.x - this.wide/2) return false; if (x > this.x + this.wide/2) return false; if (y < this.y - this.tall/2) return false; if (y > this.y + this.tall/2) return false; return true; } boolean hit( Animal other ) { //// Return true iff other hits this one. return hit( other.x, other.y ); } }