CS130 Project 1a

(updated 8/29/2005)

MÆDEN Enhancements

Due 2pm Saturday, September 3, 2005

The purpose of this first project assignment is several-fold.  The first is to give you experience with CVS.  The second is to gain experience working with a code-base others have written.  The third is to implement a few improvements to the display methods.  In order to complete this (and subsequent) project, you will need to have a text editor and a java environment.

CVS Environment
First, you will want to setup your CVS environment.  For these first few assignments, your CVSROOT will be wardrobe.cs.westmont.edu:/home/maeden/Maeden.  After setting things up, you should check out a personal copy of the source ("cvs checkout src").

Display Enhancements
For project 1a, you are asked to implement two enhancements to the display routines used by Maeden.

1. First, alter the code so that the Grid and the DisplayGrid gets updated instead of repainted.  You will probably need to do a bit of research in the Java documentation in order to determine the most appropriate way to do this.  You may not use the Thread.sleep() method in your solution.
The main requirement is: the display must not flicker while running a simulation.
2. Second, the triangle representing an agent should be updated through several rotations when turning, rather than simply being redrawn in its new orientation.  You may experiment with the number of rotations and updates in order to determine an appropriate setting with visual appeal.  Similarly, the rendition of the visible portion of the world in a GridDisplay, should be rotated as well.  Again, using Thread.sleep() is not acceptable.
The primary requirement is: the observer should percieve either the object or the world rotating in a reasonably smooth transition.

As you work on this project, be sure to use appropriate documentation in the code and informative log messages when committing changes in CVS.

Submission Instructions
You will not need to do anything special for submission.  At the deadline, I will checkout the the current code-base and test it.  (You will want to be sure all changes are committed to CVS.)