jokerstars: online card playing william sanville milestone 4
Post on 22-Dec-2015
218 views
TRANSCRIPT
Background
Online card system specializing in Texas Hold'em poker
Similar to popular systems such as PokerStars, Full Tilt Poker
Client-Server model
Scope Revision
Original Plan: One table of No Limit Hold'em with one to nine players
Revised Plan: Many tables of No Limit Hold'em with one to six players
System should be flexible enough to support many tables concurrently Implementing just a single table would be a
waste
Integration Testing
Entry Criteria: Modules must pass unit testing
Many of the modules are simple class definitions with no interaction with other modules Examples:
Events module SQL module Game Entities module
Bottom-up approach
Unit Testing
SQL module Execute stored procedures, verify that the
expected results occur Example:
Connect to the database server. Record the chip count for “user1”
Call the IncreaseChipCount method defined in the SQL module with parameters “user1” and 100
Verify that the user's chip count has increased by 100 Call the DecreaseChipCount method defined in the
SQL module with parameters “user1” and 100 Verify that the user's chip count has returned to the
original value
Unit Testing Continued
Game Entities module Deck must be able to shuffle itself
Pseudorandom number generator is OK for this project
Deck must not contain any duplicate cards
Collections module Verify the behavior of custom data structures
Events module Only class definitions with sets and gets Side affect of how C# language is structured
Integration Testing: Two Phases
Integration testing can be broken into two main phases
Phase One: Perform integration testing on Client, Server, and Networking modules This is the foundation for the JokerStars system
Phase Two: Perform integration testing on the remaining modules Game Engine, User Interface, Game Entities
Phase One: Client, Server, Net
Common functionality of Client and Server is implemented in the Networking module Packet, buffers, serialization
Client and Server modules pass and receive messages in the same way as defined in the Networking module
Client and Server must agree on the format of packets for successful integration Packet consists of a type (enumeration), a table
id, and a payload (any object)
Phase One Continued
Client and Server must communicate over the Internet Not just LAN, on and off campus Firewalls must be set properly
Test Plan
Equipment: Dedicated machine, two clients Procedure:
Start the Server module on the dedicated machine Connect from the first client machine. Verify that the
server accepts the connection Connect from the second client machine. Verify that the
server has acknowledged that a different user has connected
From server, send a different message to each client. Verify that the message was received
Send a message from each client to the server. The server should display which user sent which message
Disconnect the clients. Verify that the server recognizes that each client has disconnected
Phase Two: Game Engine, UI
Most complex part of the JokerStars project
User Interface and Game Engine utilize the Client and Server modules to pass messages
UI and Engine must agree upon every piece of data that is sent If the Engine sends a string in a packet, and the
Interface expects a bool, runtime error will occur
Phase Two Continued
Testing the Game Engine and User Interface thoroughly requires the entire system to be operational
Therefore, the Game Engine and User Interface are a better candidate for system testing
Exit Criteria
The JokerStars system will be ready for System Testing upon verification of: Ability to transport complex objects over the
Internet Modules that do not interact with each other
must pass unit testing SQL module, Game Entities module
Game Engine must allow system operator to add a virtual card table at run time
Game Engine must broadcast the list of card tables to the clients
User Interface must allow end user to select which table(s) to play on
JokerStars Lobby
Control Panel and Lobby maintain the connection
Control Panel and Lobby route packets to the correct card table for processing Ex: A player on Table 1 places a bet Message is sent from the Lobby to the Control
Panel, which will pass the message to the correct instance of the game table for processing