def readBlinds(self,hand):
     preflop = BettingRound()
     actions = []
     playerSet = set( hand.players.keys() )
     
     while True:
         try:
             pid = self.alternative(playerSet)
         except scanner.BadAlternative:
             break
         self.alternative( [ ': posts small blind ', ': posts big blind ', ': posts the ante '])
         act = Action()
         act.action = Action.Post
         act.bet = self.number()
         actions.append( [pid, act] )
         self.alternative([ '\n', ' and is all-in\n' ])
  
     hand.addBetRound(preflop,actions)
    def readBlinds(self, hand):
        preflop = BettingRound()
        actions = []
        playerSet = set(hand.players.keys())

        while True:
            try:
                pid = self.alternative(playerSet)
            except scanner.BadAlternative:
                break
            self.alternative([
                ': posts small blind ', ': posts big blind ',
                ': posts the ante '
            ])
            act = Action()
            act.action = Action.Post
            act.bet = self.number()
            actions.append([pid, act])
            self.alternative(['\n', ' and is all-in\n'])

        hand.addBetRound(preflop, actions)
 def readAction(self):
     act = Action()
     txt = self.alternative(['folds', 'calls', 'checks', 'bets', 'raises', 'shows', 'mucks'])
     
     if txt == 'folds' or txt == 'checks':
         self.text(' ')
         if txt == 'folds':
             act.action = Action.Fold
             if self.peek(1) == '[':
                 act.cards = self.readCards()
         else:
             act.action = Action.Check
         return act
     elif txt == 'calls' or txt == 'bets':
         self.text(' ')
         if txt == 'calls':
             act.action = Action.Call
         else:
             act.action = Action.Bet
         act.amount = Money( self.number() )
         # we might be all in here
         try:
             self.text(' and is all-in')
         except scanner.BadAlternative:
             pass
         return act
     elif txt == 'raises':
         self.text(' ')
         self.number()
         self.text(' to ')
         act.action = Action.Raise
         act.amount = Money( self.number() ) 
         # we might be all in here
         try:
             self.text(' and is all-in')
         except scanner.BadAlternative:
             pass
         return act 
     elif txt == 'shows':
         self.text(' ')
         act.action = Action.Show
         act.cards = self.readCards()
         hand = self.lookaheadTill('\n')
         self.text( hand )
         return act
     elif txt == 'mucks':
         self.text(' hand ')
         act.action = Action.Muck
         return act
     
     raise handparser.HandParsingException( None, self.line_num, self.char_num, 'Unexpected action : "'+txt+'"!!')
 def collectMoney(self,amount):
     act = Action()
     act.action = Action.Collect
     act.amount = amount
     return act
    def readAction(self):
        act = Action()
        txt = self.alternative(
            ['folds', 'calls', 'checks', 'bets', 'raises', 'shows', 'mucks'])

        if txt == 'folds' or txt == 'checks':
            self.text(' ')
            if txt == 'folds':
                act.action = Action.Fold
                if self.peek(1) == '[':
                    act.cards = self.readCards()
            else:
                act.action = Action.Check
            return act
        elif txt == 'calls' or txt == 'bets':
            self.text(' ')
            if txt == 'calls':
                act.action = Action.Call
            else:
                act.action = Action.Bet
            act.amount = Money(self.number())
            # we might be all in here
            try:
                self.text(' and is all-in')
            except scanner.BadAlternative:
                pass
            return act
        elif txt == 'raises':
            self.text(' ')
            self.number()
            self.text(' to ')
            act.action = Action.Raise
            act.amount = Money(self.number())
            # we might be all in here
            try:
                self.text(' and is all-in')
            except scanner.BadAlternative:
                pass
            return act
        elif txt == 'shows':
            self.text(' ')
            act.action = Action.Show
            act.cards = self.readCards()
            hand = self.lookaheadTill('\n')
            self.text(hand)
            return act
        elif txt == 'mucks':
            self.text(' hand ')
            act.action = Action.Muck
            return act

        raise handparser.HandParsingException(
            None, self.line_num, self.char_num,
            'Unexpected action : "' + txt + '"!!')
 def collectMoney(self, amount):
     act = Action()
     act.action = Action.Collect
     act.amount = amount
     return act