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
- Implement the classes for your plugin. Document your time and
defects following the PSP script. Write complete javadoc
comments.
- Make sure your source code compiles with no errors and passes CheckStyle.
(You're allowed 5 violations per 1000 lines of code.)
- Use handin to submit your source code electronically (see below).
- 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.
- Use the online PSP
form submission and print the Summary form.
Staple your PSP forms on top, with the Summary Form on top.
- 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
- Create a README.TXT file that describes any missing
or incomplete features, or any extra credit features.
- Create
a zip file named Maxit.zip containing the plugins folder and the
Maxit folder and the README.TXT file.
- Do not include your compiled class files.
- Login
to vogon.csc.calpoly.edu using the Secure Shell Client program
(or your favorite equivalent).
- Upload the zip file your created.
- Use
the following handin
command
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."