CS150 Final Project:  Frogger!

Home Java Resources Discussion Dropoff

Due end of reading period:  11:59 PM, Sun. Dec. 17, 2000

The final project is to write a simplified version of the classic video game, Frogger.

  •  This is a group project:   Form teams of 3-4.   A group grade will be given out.    Only one project file is to be turned in per group.

Minimal Requirements:

  •  Only the mode of a safe "road" with dangerous moving "vehicles" is required.    That is, the mode where the "frog" jumps across, trying to avoid moving "cars".
  •  The mode of of jumping onto moving "logs" is not required.
  •  The "frog" should be able to move up, down, left or right using the arrow keys.   (No, you haven't been told how to do this -- but you can figure it out by looking it up in the Java docs!)
  •  There must be at least 5 lanes of traffic.
  •  The lanes of traffic should be filled with (seemingly) random numbers of vehicles at random spacings.
  •  The lanes should be going in various directions.  The vehicles in any given lane, obviously are all going the same direction.
  •  The lanes should have varying speeds. 
  •  There should be at least 6 separate threads running in the program, counting the AWT event thread but not any other non-student programmed threads.
  •  There must be at least 3 different types of vehicles with different images.
  •  The "frog" must have at least 2 different images (e.g. "alive" and "dead").
  •  The "frog" must have more than one "life" or that there be multiple frogs available in a single game.
  •  A scoring system must be in place and constantly updated.
  •  Be nice to your poor, old professor--put in a way that the game can be slowed down so those of use with lousy reflexes can actually win once in a while! 

Final Hand-in Requirements

  •  The source code, complete and ready to run.
  •  A detailed "user's manual" that describes exactly how to play the game and what the game will do.
  •  Technical documentation that includes
    •  A written summary of the overall architecture of the system and a synopsis of how the program works.  That is describe the fundamental pieces of the program and how they interact and for what purposes.    Be sure to include mention of any design patterns that are used and why.
    •  Fully documented code with a Javadoc "website":   All  classes, methods and variables must be documented as to what they are and what they do.   
    •  A neat, understandable UML diagram of the software system.   This diagram should be included as a picture in the documentation,  and should be part of the documentation "website".
  •  The documentation should include a section on how one would extend the program to add new features, such as more kinds of vehicles, more lanes, different sorts of behaviors or whole new modes of playing.

Milestones

To keep you on track, a series of graded milestones will be instituted as parts of the regular laboratories.    These milestones will be due at the same times as their respective labs.

  1. Milestone #1 :  Modeling Frogger
  2. Milestone #2 :  Making Traffic
  3. Milestone #3 :  Git-a-Move-On, Frog!

Grading Criteria

  •  Does the program work as advertised?   (Correctness)
  •  Are the instructions and code documentation easy to understand?
  •  Does the program demonstrate good OOP practices?
  •  Is the program robust, i.e. not prone to failure?
  •  Is the program flexible? 
  •  Is the program extensible?

Resources

Please e-mail me about any other resources you come across that are recommendable!