CS 329: Assignment #6

Due in November 2015, on Friday the 20th.

The following project should be done in groups of at least two and no more than three. Each group will construct a complete client and server.

Checkers Server

Construct a client/server application to support playing the game of Checkers across a network. Specifically, you are to write both a server (which manages client accounts and games) and a GUI-based client that connects to the server, and allows the user to play games with other connected users.

Note that you are not being asked to write an AI to play against human players. As an interesting aside, however, checkers is one of the few games that has been completely solved, with perfect play always resulting in a draw.

If you are unfamiliar with fine points of the game's rules, you can review them here: https://en.wikipedia.org/wiki/English_draughts

Client Requirements

Server Requirements

Open Form Requirements

How much game data should be stored, and who should be responsible for it? Should the server manage the whole thing? Should the individual clients manage their own game archives, with the server remaining comparatively stateless? What is the application-layer protocol you will use? There is more than one way to approach this problem. Make it clear what you are doing, pick a strategy, and go for it.

Collaboration Requirements

Whatever conventions you settle on, they will have to be agreed upon by every group. This is because the pairing of client and server application is not predetermined. Every client application should work with either server, which means a total of six possible pairings.

[UPDATE: The results of our "standardization committee" meetings are available here (link)]

John H. E. Lasseter