Project Phase #3 - COMP 303

Complete implementation of GUI-based simulator

The purpose of this milestone is to complete the implementation of a GUI-based version of the simulator.

You should be able to invoke your GUI-based simulator using:

java ant.GuiMain <  optional flags  >

Your GUI should support at least the following:

  1. Buttons to read in the red ant file, the black ant file and the world, with the appropriate window-based browsing for these files.
  2. Buttons to start, stop and pause the simulation. The stop button just stops the simulation - a subsequent press of the start button should restart at the beginning. The pause button also stops the simulation, but a subsequent press of the button should resume at the paused location.
  3. Buttons or a slider bar used to control the speed of the simulator.
  4. A display of the simulation as it proceeds, showing the state of the board and the current score for the red and black ants.

You may support more features if you wish. Remember one of our prizes is for the coolest GUI.

What to hand-in

  1. A discussion of how you changed your design to integrate the GUI. You should include any new design documents for the parts you have added.
  2. A discussion of any limitations or extra features of your GUI-based simulator.
  3. A discussion of the sorts of JUnit tests you implemented.
  4. The html generated using javadoc for your implementation.
  5. The build.xml file needed for your project to date. This should support targets for init , clean , compile , build , javadoc and junit .
  6. Your build target should now generate two .jar files. It should build the original simulator.jar which contains only the command-line based simulator and can be run using can be run using java -jar simulator.jar ... . It should also include another .jar file guisimulator.jar which should contain all of the class files for both the command-line simulator and the GUI-based simulator. It should be possible to run the GUI-based simulator using java -jar guisimulator.jar .
You should hand in a hardcopy for questions 1, 2 and 3. In addition, you should e-mail to the TA a file YourLastname.jar file which has the following directory structure.
YourLastName/
           README
           build.xml   build file for  ant  
           bin/        any scripts you have developed 
           classes/    where your generated classes go 
           design/     any online design documentation 
           doc/        where your generated javadoc html goes  
           lib/        where generated .jar files go 
           src/        java/aspectj/junit source files for your project 
                          (organized into a good package structure) 
You can create a clean directory (that does not have the hidden svn files) using:
 
  svn export YourSVNWorkingDirectory YourLastName 
to export a clean copy of your project to a directory called YourLastName.

You can create the jar file by using:

   jar -cvf YourLastName.jar YourLastName 
to create the jar file to send to the TA.