CSc 305 Project 4

Due Wed May 14 11:59 pm

The instructor has enhanced the GridGameFramework from project 3 to include networking for multi-player games.

You are to write a Maxit plugin for this framework.



Valid moves should be shown in bold face (strong).
Invalid moves are shown grey (disabled).
Already played squares should be shown white (inverse video).
The previously played move should be shown as italicized (but not bold) text.

The status panel should show player score and opponent score, and a "Your turn" notice.
The winner gets to enter their score in the High Score file.
Be sure the end game logic is correct (see Maxit rules).

The New Game, Chat, and Quit Game buttons operate as in TicTacToe lab.
The Scores button shows the high scores.
About shows an informative message with the version number and author name.
An invisible "cheat" button (Alt-Z) marks all moves as played except one (without changing the score).  Clicking on this last remaining square ends the game.


Extra Credit Write a separate AI client for human players to compete against.

Resources


NetGGFrameworkV2.zip (V2.0)

NetGGFrameworkV3.zip (V3.0) (Server sends seed when players join game. Thus joinGameSucceeded() is called with a String representation of the random number seed).

NetworkConnection.java (V1.0)

Packages tutorial


To start a server: bin/server.sh

To compile and run your plugin,
cd plugins
javac -cp ..:. *.java
cd ..
bin/client.sh
To connect to your local server, select the default host "localhost".
Then open another terminal window, and start a second client running with a different username.

Assignment Submission

  1. Implement the classes for your plugin. Document your time and defects following the PSP script.  Write complete javadoc comments.
  2. Make sure your source code compiles with no errors and passes CheckStyle. (You're allowed 5 violations per 1000 lines of code.)
  3. Use handin to submit your source code electronically (see below).
  4. Print your source code using 10 point monospaced font.  You will have multiple classes; place the classes in alphabetical order.  Write your name at the top.
  5. Use the online PSP form submission and print the Summary form. Staple your PSP forms on top, with the Summary Form on top.
  6. Submit your work to the table in front of the classroom at the next class meeting after the due date.

Handing in Your Source Code Electronically
       handin  graderjd  Project4  Maxit.zip
      

Scoring

Correct functionality  45%
Design quality 30%
Code quality 20%
Correctly completed PSP forms 5%



FAQ


Q:
How can I get the person who is currently supposed to move to display that...
A:
Just do it the way TTT does. The very first move of the game has no announcement ... the player who started the game just has to know that they move first. On all subsequent moves, the status shows "Your turn."