"High Stakes" is a game of Seven-Card Stud Poker that will be a fun and interactive experience for players.

What will make this stand out from all the other Poker videogames out there is the emphasis on a physical interaction as well as competition against smart, reactive opponents. The plan is to use both Nintendo's Wiimote and NaturaPoint's TrackIR head tracker for control to play against responsive, motion captured avatars for a truly immersive poker playing experience.

Thursday, October 11, 2007

State Diagram v0.2

Current Event Types
  • HSP_GAME_START
  • HSP_GAME_PAUSE
  • HSP_GAME_RESUME
  • HSP_GAME_STOP
  • HSP_NEW_GAME
  • HSP_DONE_PREPARATION
  • HSP_NEW_ROUND
  • HSP_NEW_CARD
  • HSP_DISTRIBUTED_CARD
  • HSP_GOT_CARD
  • HSP_BET_TURN
  • HSP_PLAY_TURN
  • HSP_CALLED
  • HSP_RAISED
  • HSP_CHECKED
  • HSP_FOLD
  • HSP_ALLIN
  • HSP_CLOSE_ROUND
  • HSP_ROUND_RESULT
  • HSP_CHIP_RESULT
  • HSP_DONE_CLOSE
  • HSP_TIME_TICK
  • HSP_TOO_IDLE
  • HSP_TRANSCRIPT
  • HSP_ACTION
  • HSP_ADVICE_TALK

State diagram :
Poker game continues until that user presses stop button or one of player lose all money.
Game starts from new_game.

Dealer gets "new_game" with number of players.
Dealer creates player information table, and registers players.
Dealers sends "new_game" to the players.

Player gets "new game" with number of players.
Each player initializes its status and creates guessing table for archiving opponent's status in future.
Player sends "don_preparation" to all objects with player number, money, hand eval value.

Dealer gets "done_preparation", and update player table.
If Dealer updates all player information into table(dealer has number of players info, so dealer waits till receiving "done_preparation" from all players), it sends "new_round" to itself.

Player gets "done_preparation", and updates guessing table.

Dealer gets "new_round", then it initializes card, randomly select cards, distributes it, and update player table.
First two cards to each players don't update to player table.
Dealer sends "new_card" to dealer and each player.

Dealer gets "new_card", then it calculates rank of players, make turn queue, and sends "play_turn" to all with the player number. Then pop the player number from the turn queue.

Player gets "new_card", then it sends "got_card" to all with card number if it's not hidden card.




Player gets "play_turn". If it's your turn(comparing with player number and your id), decide action, and send the action to all.

Dealer gets actions from the turn player. If turn queue is not empty, it sends "play_turn" with next player number.
The turn queue is empty and street number is less than 7th street, go back to "new_card" state.
The turn queue is empty and show down flag is active, then it sends "close_round" to itself.
The turn queue is empty and street number is 7th street, then it sends "close_round" to itself.


Player gets actions. It updated guessing table.

Dealer gets "close_round". It evaluated all cards, find highest hand value, and sends "round_result" to all with winner id.

Dealer gets "round_result", and it sends "chips_result" to each player.

Player gets "round_result". If the winner id is same with your id, then you win. otherwise you lose. It update guessing table.

Player gets "chips_result. It updates players chips adding/minus the number.
It sends "done_close" with players chips amount to dealer.

Dealers gets "done_close", and it updates player table with chips.
If dealer gets "done_close" from all player, then check all player's chips.
If one of players have 0 chips, then it sends "game_over" to all.
Otherwise, it sends "new_round" to itself.

No comments: