1. The constructor for the Frog class needs to have as one of its arguments the Image that you want to use for the frog. The getImage() function must be done from a class that extends WindowController. It would be nice if we could getImage() from within the Frog class constructor, but we cannot easily do that. Thus the Image is obtained in the Frogger client program and then passed to the Frog constructor. 2. Step #2 (see page 5) can be broken down further: Step #2 Write the Frog class except for the kill and reincarnate methods. a. Write the Frog constructor and then test it. When you compile and run the program, you should now see the Frog in its starting position. Adjust the arguments of the call to the Frog constructor in the Frogger class until your Frog is where you want it to be at the start. b. Write the hopToward() method for the Frog class and then test it by modifying the Frogger class onMousePress() public method. When you finish writing the hopToward() method, be sure that your Frog jumps to the middle of each lane and to the shoulder of the road. Also make sure it goes to the start of the road (left side) and the end (right side) of the highway okay and in a reasonable position. c. At this point, I have NOT written the overlaps(), the reincarnate(), the isAlive() or the kill() methods for the Frog class. However, I have a good start with the project. During class discussions on Monday and Wednesday, I will understand more of what is being said about any Frogger project issues because I am already working on it and more deeply familiar with it. d. If you have not written and tested this much of the program by Monday, you are starting way too late on the project. Do NOT try to do the project all in a couple of days, unless those couple days are 4 or 5 days BEFORE the due date. Too many students were working on part 1 of the Boxball game project on Wednesday or Thursday of last week. Don't make that mistake again. 3. At this time, I see no need to require the Vehicle class to record the length of the pause(). Note that pause(30) means pause AT LEAST 30 milliseconds. What if a pause is 45 milliseconds instead of 30? Then the car moving at a speed of 4 units needs to move 6 units instead of 4 units to maintain its normal speed. Save the current time. (Get the current time by calling getTime()). IGNORE THE ABOVE LINE FOR NOW... pause for (at least) 30 milliseconds. Determine how long it actually paused for (e.g., subtract the time saved earlier from the current time) and move the appropriate distance. (Remember your equation from physics: rate * time = distance.) IGNORE THE ABOVE THREE LINES FOR NOW... You need to do this to ensure smooth motion of your vehicles. With so many active objects, the computer cannot ensure that the length of pauses will be very precise. IGNORE THE ABOVE THREE LINES FOR NOW... Find out if the vehicle squished the frog and kill the frog with the kill method if it did. 4. Here are my test statements for page 5, step #5 which "Test the Vehicle class by having the begin method in the Frogger class ..." Image carImage = getImage("oldcar_right.gif"); Image taxiImage = getImage("taxi_right.gif"); Image vanImage = getImage("van_right.gif"); new Vehicle( carImage, new Location(50, 125), 4, 600, frog, canvas); new Vehicle( taxiImage, new Location(50, 215), 1, 600, frog, canvas); new Vehicle( vanImage, new Location(50, 325), 2, 600, frog, canvas); new Vehicle( carImage, new Location(50, 425), 3, 600, frog, canvas);