Set is a card-game where the basic objective of the game is to find 'Sets' among the cards currently in play. Each card in the deck has 4 different properties:
* Color
* Number of Symbols
* Shape of Symbols
* Shading of Symbols
A group of three cards is considered a 'Set' if for each property listed above the three cards are either
* All the same.. OR
* All different for that property.
You can read more details about the rules here: http://setgame.com/set/
For our implementation, we will build a multi-player, networked version of this game. The high-level components we plan to implement are:
* A game server that allows several players to join a game, manages the creation / randomization of the deck ordering, keeps score, and keeps time
* A client interface that allows a player to select a Set from the 12 cards that are currently in play
The game server will have to do things like:
* Alert clients when game state has changed
* Generate / store the game deck for each game session
* Receive messages from players
* Keep current game state
The client will have to do things like:
* Display the currently in-play cards
* Allow the player to select 3 cards
* Display the game state to the client
* Update the display when the game state is changed by other clients.