PokerProtocol
work in progress
All communication will be encoded in JSON for the time being. This is both simple to encode/decode in python using simplejson package, as well as in javascript. It's also a lot more lightweight than XML and since complex data types and structures aren't needed.
joining a game
{
"method" : "connect"
"user_id" : "mikelikespie"
"client_id" : "asdfabcd"
"table_name" : "test_table"
}
server responses
on error
{
"stat" : "fail"
"code" : 325
"message" : "Ate my waffle"
}
successful state return
Here's an example what an error would look like. I still need to define the errors and such.
{
"action": "Player added",
"stat" : "ok",
"msg_id" : "abcd3589sdfa",
"type" : "game_state",
"you" : {
"user_id" : "mikelikespie",
"id" : "1Sfg",
"required_action" : True,
"cards" : [ ["2", "diamonds"], ["7", "hearts"] ],
"possible_actions" : {
"check":null,
"fold":null,
"raise":5.0,
"call":2.5,
"bet":2.5
}
},
"table_info" : {
"game_in_progress" : True,
"name" : "Mike's poker room1351251"
"button_on" : 1,
"blinds" : [1.0,2.0]
"players" : {
"1Sfg" : {
"owner" : "mikelikespie",
"status" : "in_hand",
"money" : 350.35,
"seat" : 0
},
"che35ez" : {
"owner" : "cheezbuger",
"status" : "folded",
"money" : 355,
"seat" : 1
},
"lolrus2" : {
"owner" : "lolrus",
"status" : "sitting_out",
"money" : 2141.00,
"seat" : 2
}
}
}
"game_state" : {
"phase" : "river",
"action_on" : 0,
"pot_before_phase" : 12551.0,
"community_cards" : [["2", "hearts"],["7", "clubs"],["9", "spades"],["2", "clubs"],["A", "diamonds"]],
"player_actions" : {
"lolrus2" : [[ "check", null ], [ "call", 50.0 ], [ "raise", 50.0 ]],
"che35ez" : [[ "check", null ], [ "fold", null ]],
"1Sfg" : [[ "bet", 50.0 ], [ "call", 50.0 ]]
}
}
}
