CS 117 Final Project

Assigned Friday March 2.

Part I: Due Friday March 9 by 5:00 PM.

Part II: Due Wednesday March 14 by 5:00 PM.

You may work alone or with one other person from the class.

Part I: Sent to me by e-mail A design document outlining how you will approach the project. It must include a description of what you hope to accomplish and a trajectory for getting there. By a trajectory I mean a sequence of small steps each of which can be written, tested and added into the project in such a way that it always compiles and runs. In this way, if you don't reach your final goal, you still have something to hand in that works. This document should also outline the classes you intend to write, and the methods you will implement. If there are two people working on the project, tell me both names.

Part II: Submitted via HSP The last working version of your program consisting of a folder containing your entire program. Please name your folder Final. Also in this folder include a text file called README.TXT in which you include any relevant information I need to know. For example, tell me how to run your program if user input is not obvious. Tell me about any bugs. Tell me what you had to leave out because you ran out of time. Tell me about what outside help you received.

Aquarium Simulation

You've spent a fair amount of time this term making graphical fish do things. In the final project you will create an animated aquarium. Draw a rectangle defining the aquarium that is smaller than the entire Canvas. If a fish is about to exit the aquarium, it's direction of motion and the direction it is facing should be reversed. Now make your aquarium program do a more detailed simulation of aquatic life. You could, for example, redesign your Fish class to include data and methods to represent and control the size, type (sharks, anyone?), or speed of the fish. You could include a notion of "hunger level," so that fish that get too hungry will die and float to the top of the aquarium (and that hungry fish who encounter smaller fish will eat the smaller fish). You could include a Plant class whose instances randomly generate instances of a Bubble class, which in turn float upwards. Go ahead and use your imagination.

Your simulation can include pretty much any features you can cook up, but it must include:

Note The amount that you pause between each frame of the animation may have to be modified as the complexity of what you have to draw increases.

Grading criteria

Start early, have fun, and keep in touch.