Ejemplo n.º 1
0
    def __init__(self,
                 room,
                 owner,
                 dealer,
                 num_of_seats=9,
                 blind=10,
                 min_stake=100,
                 max_stake=2000):
        self.room = room
        self.owner = owner
        self.status = GameRoom.GAME_WAIT
        self.dealer = dealer
        self.broadcast_key = "broadcast_%s_%s.testing" % (self.dealer.exchange,
                                                          self.room._id)
        self.bot_key = ('direct.%s.%s.bot') % (self.dealer.exchange, room._id)
        self.occupied_seat = 0
        self.suit = ["DIAMOND", "HEART", "SPADE", "CLUB"]
        self.face = [
            "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"
        ]
        self.msg_count = 0
        self.blind = blind
        self.min_amount = 0
        self.current_dealer = 0
        self.small_blind = 0
        self.big_blind = 0
        self.current_seat = None
        self.flop_flag = False
        self.t = None
        self.pot = {}
        self.num_of_checks = 0
        self.amount_limits = {}
        self.ioloop = ioloop.IOLoop.instance()
        self.user_seat = {}
        self.min_stake = min_stake
        self.max_stake = max_stake
        self.raise_amount = blind
        self.big_blind_move = False
        self.raise_person = None
        self.non_fold_move = False
        self.countdown = None
        self.action_timeout = 30
        self.last_next_message = None
        self.next_timeout_time = -1
        self.seats = [Seat(x) for x in xrange(num_of_seats)]

        self.poker_controller = PokerController(self.seats)
        self.actions = {
            GameRoom.A_ALLIN: self.all_in,
            GameRoom.A_CALLSTAKE: self.call_stake,
            GameRoom.A_RAISESTAKE: self.raise_stake,
            GameRoom.A_CHECK: self.check,
            GameRoom.A_DISCARDGAME: self.discard_game,
            GameRoom.A_STANDUP: self.stand_up
        }