Fall 2002
Homework #5
due Wed Nov 20, by 6AM (electronically)

updated: Mon Nov 11 12:04:04 EST 2002
points adjusted: 5 pts for user interface and 2 pts for server connection

The main goal of this assignment is to design and build a graphical user-interface for your game. This will be done by rewriting your client as a Java application and fully implementing the user-interface portion of your game.

By now, you should have a pretty good idea of what your full game will look like and what the user-interface should contain. You need to write a login portion of the program (where you ask the user to enter their username and password), which needs to be the first thing that comes up when the game starts. Once the user has logged in, you can start the game. The user should have the option to play more than once or log out. The user should have a mechanism for quitting in the middle.

This assignment is worth 15 points (out of 110 this semester). Distribution of points is indicated below.

FIRST, print out the timesheet and keep track of how much time you spend doing the tasks outlined below.

1. design.(3 points)
As usual, you need to begin with a design document. This must include a "storyboard" in which you draw the various screens in the user-interface, including the login screen. You must show the progression from one screen to another. You must indicate how errors are handled, i.e., how users are notified about errors (both system-generated and user-generated) and what happens next in the game after an error occurs (does the game end? can the user correct the situation?, etc.)

This documentation should be 1-2 pages. The screen drawings can be done by hand or generated electronically. It must be complete -- so you need to be CLEAR and CONCISE. You MUST print out the documentation and bring it to class on the due date.

This section is worth 3 points:
1 point for the screen drawings
1 point for designing and illustrating a logical progression from one screen to the next
1 point for handling errors clearly and sensibly

2. write the user-interface for your game.(5 points)
Using Java, write a graphical user-interface for your game. This must be a Java application. You need to include GUI components. You can use Swing or just plain old AWT. You need to use something from the java.awt.Graphics class. You need to do something advanced. For example, use animation or import images or implement user input inside a Canvas. Be creative! Challenge yourself! If the user-interface is too simplistic, you will lose points in this section.

I will give away C++ books to the three students who write the most amazing GUIs!!!

Name the application file with your main() in it: hw5<cunix-id>.java.

3. write java software documentation.(2 points)
You need to document your Java code using javadoc. Keep in mind the discussion from class, especially which tags are required and which sections of code must be documented.

Put the files in a directory called "javadoc" below your working directory. When you run the submit script, this directory will get picked up and submitted along with your program files.

4. use configuration management.(2.5 points)
Create an RCS directory below your working directory. Put your Java files in that directory.

Create a makefile that checks the Java files out of the RCS directory and builds the program. Include the automatic version tag we discussed in class and link that to the version section of the javadoc comments. The default target in the makefile should compile the Java application.

Again, the submit script will pick up the RCS directory automatically. Make sure that all your files except the makefile are checked into RCS when you submit.

This section is worth 2.5 points:
0.5 points for creating the RCS directory and correctly storing your Java files in this directory
1 point for the makefile, including correct use of RCS as the default source file location and the default target being the one that compiles the application
1 point for automatic version generation

5. connect to the server. (2 points)
I'll discuss this in detail in class on Monday Nov 11.

6. submit.(0.5 points)
You need to submit your program in two ways: electronically and hard copy. There is no partial credit here -- if you don't follow the submission instructions, you lose all the points for this section.

  1. electronically
    Follow the submission instructions.
  2. hardcopy.
    (1) Print out the homework template cover page and fill it out.
    (2) Print out the timesheet and fill it out.
    (3) STAPLE the cover page, timesheet and hardcopy of your documentation together.
    (4) Make sure your name and CUNIX ID are on all the papers you hand in!
    (5) Bring all this to class on the day the assignment is due and deposit it in the homework box at the front of the classroom within the first 5 minutes of the class (by 1.15pm).