====== Structure ======
| GameLogic |
| WTable | GameController |
| pclient.cpp | game.cpp |
| pserver.cpp |
The following sections lists the file structure and describes each item.
===== Documentation =====
* docs/
* **protocol_spec.txt** - Network protocol specification for server/client communication
===== libPoker =====
* src/libpoker/
* **Card** - class which describes a single card
* **Deck** - class which manages 52 cards as a card-deck
* **HoleCards** - class which manages (a player's) hole-cards
* **CommunityCards** - class which manages flop, turn and river cards
* **Player** - class of single player entity
* **GameLogic** - core logic: determine hand-strengths and winning-lists
===== Server =====
* src/server/
* **pserver.cpp** - server core; handle sockets and add/remove clients via game.cpp
* **game.cpp** - handle client related tasks such as adding/removing clients, handling client-commands, handling list of games
* **GameController**/**Table** - handle a game; this is where the whole game-flow logic lies
===== Client =====
* src/client/
* **pclient.cpp** - client core; handling connections and registered games/tables
* **WMain** - main menu / game foyer; list of servers, games and tables
* **WTable** - represents a single table
===== Test =====
* src/test/
* **test.cpp** - includes several tests for GameLogic
* **gc_test.cpp** - testing the GameController
* **simulator.cpp** - determine probabilities with the empirical formula
* **system.cpp** - tests for engine related code (e.g. Tokenizer)