Modify a text file: $/final/BAM_Final_5-12-14.java
$/final/BAM_Final_5-12-14.java
//// CST-112 FINAL EXAM -- Willam Pagan //// String student="William Pagan"; String title="CST-112 FINAL EXAM: " + student; String news= "Click to move objects"; //////// GLOBAL DECLARATIONS //////// int score=0; float left=50, top=50, right=750, bottom=550; Animal zoog, cat, bird; Animal submarine; Animal ant; Animal redbird; //declaration of new bird. // +++++ ADD YOUR DECLARATIONS HERE, // +++++ to create array of 5 bugs. Animal bugs; //declaration of new animal. Bugs[] bugs= new Animal[maxbugs]; //cration of the array of 5 bugs. int totalBugs = 5; //////// SKETCH FUNCTIONS //////// void setup() { //// Setup. size( 800, 600 ); right=width-50; bottom=height-50; reset(); } void reset() { //// initialize the menagarie. cat= new Animal( 50, 30, 20, 4, 0 ); cat.setRGB( 200,150,50 ); cat.x=100; cat.y=100; cat.name= "cat"; // zoog= new Animal( 40, 80, 0, 2, 7 ); zoog.setRGB( 200,150,150 ); zoog.x= 200; zoog.y= 200; zoog.name= "Zoog"; // bird= new Animal( 3,0,0, 50, 15, 12, 0, 0 ); bird.setRGB( 50,50,250 ); bird.x= 300; bird.y= 300; // redbird= new Animal ( 2,0,0, 45,20,17, 0,0 ); //making the second bird. redbird.setRGB ( 255,0,0 ); redbird.x= 200; redbird.y= 200; /// submarine= new Animal( 2,0,1, 50, 15, 12, 0, 0 ); submarine.setRGB( 155,0,255 ); submarine.x= 400; submarine.y= 400; submarine.name= "Nautilus"; // ant= new Animal( 6,0,3, 15,45, 255,50,50 ); ant.y= bottom ; //// Creat five bugs //// bugs= new Animal ( 9,2,5, 30,60, 100,100,255 ); // the 5 bugs. for (int i=0; i<5; i++) bugs.y= top ; { // ADD YOUR CODE HERE // bugs= new Animal ( 9,2,5, 30,60, 100,100,255 ); } } void draw() { //// Next frame. scene(); action(); // Move all objects, check collisions, etc. show(); // Draw objects on screen. messages(); } void action() { //// Move, check collisions, etc. //// cat.move(); bird.move(); zoog.move(); crash(); // 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. +++++++++++++ // bugs.move(); if ( bugs.y < bottom+20 ){ //bugs float to the bottom. bugs.dy=0; bugs.setRGB (random); //random colors for the bugs. if ( bugs.x > right-20 ){ bugs= new Animal ( 9,2,5, 30,60, 100,100,255 ); bugs.y= top; } } void crash() { //// Check for collisions //// // zoog kicks the cat (+50) -- move cat to right side. if (zoog.hit( cat ) ) { cat.x=right-20; score += 50; } // cat catches bird (-100) -- move bird to left side. // ++++++++++ YOUR CODE GOES HERE. +++++++++++++ // if ( cat.hit ( bird ) ) { bird.x= left-10; score-= 100; } // bird hits Zoog (-50) -- move Zoog to random position. // ++++++++++ YOUR CODE GOES HERE. +++++++++++++ // if ( bird.hit ( zoog ) ) { zoog.x= random+15; score -= 50; } // bird catches any bug (+10) -- start new bug at bottom // ++++++++++ YOUR CODE GOES HERE. +++++++++++++ // if ( bird.hit ( bugs ) ) { bugs.x= bottom+10; score+= 10; } // cat catches any bug (+25) -- start new bug at bottom // ++++++++++ YOUR CODE GOES HERE. +++++++++++++ // if ( cat.hit ( bugs ) ) { bugs.x= bottom + 15; score+ 25; } } void show() { //// Draw objects on screen. //// cat.show(); bird.show(); zoog.show(); submarine.show(); ant.show(); for (int i=0; i<5; i++) //// Display the bugs //// // ++++++++++ YOUR CODE GOES HERE. +++++++++++++ // bugs.show(); for (int i=0; i<5; i++) { } } void scene() { //// Background, scene, etc. //// background( 255,255,200 ); fill( 150,200,150 ); rectMode(CORNERS); rect( left, top, right, bottom ); //// Blades of grass across the bottom //// stroke(0,150,0); // Grass color. strokeWeight(1); // ++++++++++ ADD YOUR CODE HERE. +++++++++++++ // beginShape (LINES); //Making the grass grow. for ( int i = 10; i < width; i+=20 ){ vertex (i,10); vertex (i,bottom+10); endShape; } } void messages() { //// Display messages fill(0); textSize( 20 ); text( title, width/3, 25 ); textSize( 14 ); text( news, left, 40 ); } //////// EVENT HANDLERS //////// void keyPressed() { //// Handle keys //// if (key == 'q') { exit(); } if (key == 'r') { reset(); } if (key == 'c') { cat.randomXY(); } if (key == 'z') { zoog.randomXY(); } if (key == 'b') { bird.randomXY(); bird.dx= 12; bird.dy= .5; if (key == 's') { submarine.randomXY(); } } } //////// CLASS DEFINITION //////// class Animal { //// Animal has a body, an optional head, legs, pairs of arms, etc. //// Animal is wide and tall, and has other properties such as color. //// Also: position (x,y) and velocity (dx,dy). //// Desription and drawing info. float wide=30, tall=50, head=0, tail=0; int legs=0, armpairs=0, reach=20; String name=""; int r,g,b; // Color. int shape=4; //// Position, velocity, boundaries float x=400,y=300, dx=0,dy=0; //// CONSTRUCTORS (and set functions) //// Animal( int shape, int legs ) { //// 2-arg Constructor: shape, wide, tall //// this.shape= shape; randomXY(); //Random x,y, dx,dy } Animal( int shape, int legs, int armpairs, float wide, float tall, int r, int g, int b) { //// 8-arg Constructor: shape, wide, tall //// this.shape= shape; this.legs= legs; this.armpairs= armpairs; this.wide= wide; this.tall= tall; randomXY(); ///Random x,y, dx,dy setRGB( r, g, b ); } Animal( float wide, float tall, float head, int legs, int armpairs ) { //// 5-arg Constructor //// this.wide= wide; this.tall= tall; this.head= head; this.legs= legs; this.armpairs= armpairs; } Animal (int shape,int armpairs, float head) { //bugs constuctor, with 3 args// shape=0; this.head= head; this.armpairs= 3; } Animal ( int shape, float head, int armpairs ) { shape= 2; this.head= head; this.armpairs= armpairs; this.dy= + / -8; this.dx= + / -0.5; } void setRGB( int r, int g, int b) { this.r= r; this.g= g; this.b= b; } void randomXY() { x= random(100,700); y= random(100,500); dx= random(1.5,2.5); dy= random(0.5,1.5); } } //// METHODS to move and show //// void move() { //// Check for boundaries, and move to new coordinates (x+dx, y+dy). if (x
right) dx= -dx; if (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( "undefined object is here!", 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, 20, 6 ); // 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
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 ); } }