Changeset 20
- Timestamp:
- 02/04/08 07:15:10 (4 years ago)
- Files:
-
- 1 modified
-
holdemtable.py (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
holdemtable.py
r19 r20 20 20 self.__action_history = [] 21 21 self.__has_acted = False 22 self.__has_folded =False 22 self.__has_folded = False 23 self.__action_log = [] 23 24 self.__status = "need implementing" 25 self.__cards_shown = False 24 26 25 27 def nextHand(self): … … 27 29 self.__has_folded = False 28 30 self.__cards = [] 31 self.__cards_shown = False 29 32 self.__action_history = [] 30 33 … … 61 64 if not self.__has_acted and not action in ["small_blinds","large_blinds","ante"]: 62 65 self.__has_acted = True 63 if action == "fold": self.__has_folded = True 66 if action == "fold" or action == "muck": self.__has_folded = True 67 if action == "show": self.__cards_shown = True 64 68 self.__action_history.append((action,value)) 65 69 … … 100 104 self.__possible_actions = None #to cache possible actions 101 105 self.__hand_count = None 106 self.__last_bet_raise = None 102 107 103 108 … … 140 145 if self.__phase != None: self.__phase += 1 141 146 else: self.__phase = 0 142 print "PHASE: %d" % self.__phase 147 143 148 for p in self.__player_array: p.nextPhase() 144 pn = PHASES[self.__phase] 149 150 if self.hand_over: return False 151 152 pn = self.phase 145 153 if pn == "blinds": 146 154 self.__player_array[0].doAction("small_blinds", … … 163 171 164 172 165 if self.hand_over: return False 166 else: return self.nextAction() 173 return self.nextAction() 167 174 168 175 #Are there any outstanding bets? … … 202 209 203 210 me = self.current_player 204 self.__possible_actions = {"fold":(None,None)} 205 206 max_money = max([p.money_in_phase for p in self.__player_array]) 207 208 money_in_phase = me.money_in_phase 209 210 min_bet = self.__blinds[2] 211 if PHASES[self.__phase] == "river": min_bet *= 2 212 213 if max_money == money_in_phase: self.__possible_actions["check"] = (None,None) 214 215 if max_money > money_in_phase: 216 call = min(me.money, max_money-money_in_phase) 217 self.__possible_actions["call"] = (call,call) 218 bet_raise = min( me.money, min_bet + max_money - money_in_phase ) 219 if max_money == 0 and me.money != 0.0: 220 self.__possible_actions["bet"] = (bet_raise, me.money) 221 #TODO this needs to change to reflect the last bet 222 else: self.__possible_actions["raise"] = (bet_raise, me.money) 211 if self.phase == "showdown": 212 self.__possible_actions = {"muck":(None,None), 213 "show":(None,None)} 214 else: 215 self.__possible_actions = {"fold":(None,None)} 216 217 max_money = max([p.money_in_phase for p in self.__player_array]) 218 219 money_in_phase = me.money_in_phase 220 221 min_bet = self.__blinds[2] 222 if self.phase == "river": min_bet *= 2 223 224 if max_money == money_in_phase: self.__possible_actions["check"] = (None,None) 225 226 if max_money > money_in_phase: 227 call = min(me.money, max_money-money_in_phase) 228 self.__possible_actions["call"] = (call,call) 229 bet_raise = min( me.money, min_bet + max_money - money_in_phase ) 230 if max_money == 0 and me.money != 0.0: 231 self.__possible_actions["bet"] = (bet_raise, me.money) 232 #TODO this needs to change to reflect the last bet 233 else: self.__possible_actions["raise"] = (bet_raise, me.money) 223 234 224 235 return self.__possible_actions … … 227 238 228 239 def __getState(self): 229 state = {"phase": PHASES[self.__phase],240 state = {"phase": self.phase, 230 241 "action_on": self.current_player.seat, 231 242 "pot_before_phase": self.pot, … … 265 276 hand_over = property( __isHandOver ) 266 277 possible_actions = property( __getPossibleActions ) 278 phase = property( lambda self: PHASES[self.__phase] ) 267 279 268 280 #returns the amount of money in pot before current phase
