Unformatted text preview:

Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22JokerStars: Online Card PlayingWilliam SanvilleMilestone 4BackgroundOnline card system specializing in Texas Hold'em pokerSimilar to popular systems such as PokerStars, Full Tilt PokerClient-Server modelScope 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 wasteModule DependenciesIntegration 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 approachUnit 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 valueUnit 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 structuredIntegration 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 EntitiesPhase 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 properlyTest 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 disconnectedPhase 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 occurPhase Two ContinuedUser Interface and Game Engine must abide by the following contract: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 testingExit 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 onJokerStars Control PanelJokerStars LobbyEntry point for the end userJokerStars 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 processingJokerStars Game TableJokerStars Game TableJokerStars Game


View Full Document

UConn CSE 4904 - Online Card Playing

Download Online Card Playing
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Online Card Playing and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Online Card Playing 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?