Hand.py: Call Decimal ctor a lot less.

From: Scott Wolchok <scott@wolchok.org>
This commit is contained in:
Worros 2011-02-24 22:51:40 +08:00
parent cf937285ea
commit 0f54f3d80c

View File

@ -504,12 +504,13 @@ For sites (currently only Carbon Poker) which record "all in" as a special actio
log.debug("%s %s antes %s" % ('BLINDSANTES', player, ante))
if player is not None:
ante = ante.replace(u',', u'') #some sites have commas
self.bets['BLINDSANTES'][player].append(Decimal(ante))
self.stacks[player] -= Decimal(ante)
act = (player, 'ante', Decimal(ante), self.stacks[player]==0)
ante = Decimal(ante)
self.bets['BLINDSANTES'][player].append(ante)
self.stacks[player] -= ante
act = (player, 'ante', ante, self.stacks[player]==0)
self.actions['BLINDSANTES'].append(act)
# self.pot.addMoney(player, Decimal(ante))
self.pot.addCommonMoney(player, Decimal(ante))
# self.pot.addMoney(player, ante)
self.pot.addCommonMoney(player, ante)
#I think the antes should be common money, don't have enough hand history to check
def addBlind(self, player, blindtype, amount):
@ -523,21 +524,24 @@ For sites (currently only Carbon Poker) which record "all in" as a special actio
log.debug("addBlind: %s posts %s, %s" % (player, blindtype, amount))
if player is not None:
amount = amount.replace(u',', u'') #some sites have commas
self.stacks[player] -= Decimal(amount)
act = (player, blindtype, Decimal(amount), self.stacks[player]==0)
amount = Decimal(amount)
self.stacks[player] -= amount
act = (player, blindtype, amount, self.stacks[player]==0)
self.actions['BLINDSANTES'].append(act)
if blindtype == 'both':
# work with the real amount. limit games are listed as $1, $2, where
# the SB 0.50 and the BB is $1, after the turn the minimum bet amount is $2....
amount = self.bb
self.bets['BLINDSANTES'][player].append(Decimal(self.sb))
self.pot.addCommonMoney(player, Decimal(self.sb))
amount = Decimal(self.bb)
sb = Decimal(self.sb)
self.bets['BLINDSANTES'][player].append(sb)
self.pot.addCommonMoney(player, sb)
if blindtype == 'secondsb':
amount = Decimal(0)
self.bets['BLINDSANTES'][player].append(Decimal(self.sb))
self.pot.addCommonMoney(player, Decimal(self.sb))
sb = Decimal(self.sb)
self.bets['BLINDSANTES'][player].append(sb)
self.pot.addCommonMoney(player, sb)
street = 'BLAH'
@ -546,9 +550,9 @@ For sites (currently only Carbon Poker) which record "all in" as a special actio
elif self.gametype['base'] == 'draw':
street = 'DEAL'
self.bets[street][player].append(Decimal(amount))
self.pot.addMoney(player, Decimal(amount))
self.lastBet[street] = Decimal(amount)
self.bets[street][player].append(amount)
self.pot.addMoney(player, amount)
self.lastBet[street] = amount
self.posted = self.posted + [[player,blindtype]]
@ -560,13 +564,14 @@ For sites (currently only Carbon Poker) which record "all in" as a special actio
# Potentially calculate the amount of the call if not supplied
# corner cases include if player would be all in
if amount is not None:
self.bets[street][player].append(Decimal(amount))
#self.lastBet[street] = Decimal(amount)
self.stacks[player] -= Decimal(amount)
amount = Decimal(amount)
self.bets[street][player].append(amount)
#self.lastBet[street] = amount
self.stacks[player] -= amount
#print "DEBUG %s calls %s, stack %s" % (player, amount, self.stacks[player])
act = (player, 'calls', Decimal(amount), self.stacks[player]==0)
act = (player, 'calls', amount, self.stacks[player] == 0)
self.actions[street].append(act)
self.pot.addMoney(player, Decimal(amount))
self.pot.addMoney(player, amount)
def addRaiseBy(self, street, player, amountBy):
"""\
@ -639,14 +644,15 @@ Add a raise on [street] by [player] to [amountTo]
def addBet(self, street, player, amount):
log.debug(_("%s %s bets %s") %(street, player, amount))
amount = amount.replace(u',', u'') #some sites have commas
amount = Decimal(amount)
self.checkPlayerExists(player)
self.bets[street][player].append(Decimal(amount))
self.stacks[player] -= Decimal(amount)
self.bets[street][player].append(amount)
self.stacks[player] -= amount
#print "DEBUG %s bets %s, stack %s" % (player, amount, self.stacks[player])
act = (player, 'bets', Decimal(amount), self.stacks[player]==0)
act = (player, 'bets', amount, self.stacks[player]==0)
self.actions[street].append(act)
self.lastBet[street] = Decimal(amount)
self.pot.addMoney(player, Decimal(amount))
self.lastBet[street] = amount
self.pot.addMoney(player, amount)
def addStandsPat(self, street, player):
@ -1395,12 +1401,13 @@ Add a complete on [street] by [player] to [amountTo]
def addBringIn(self, player, bringin):
if player is not None:
log.debug(_("Bringin: %s, %s") % (player , bringin))
self.bets['THIRD'][player].append(Decimal(bringin))
self.stacks[player] -= Decimal(bringin)
act = (player, 'bringin', Decimal(bringin), self.stacks[player]==0)
bringin = Decimal(bringin)
self.bets['THIRD'][player].append(bringin)
self.stacks[player] -= bringin
act = (player, 'bringin', bringin, self.stacks[player]==0)
self.actions['THIRD'].append(act)
self.lastBet['THIRD'] = Decimal(bringin)
self.pot.addMoney(player, Decimal(bringin))
self.lastBet['THIRD'] = bringin
self.pot.addMoney(player, bringin)
def getStreetTotals(self):
# street1Pot INT, /* pot size at flop/street4 */