Add variables for most HudCache stats and add optional arg to Hand
Will almost certainly need to change all of the data structures in the variables as they are only for a single player
This commit is contained in:
parent
311e79c6e6
commit
d212d81e03
91
pyfpdb/DerivedStats.py
Normal file
91
pyfpdb/DerivedStats.py
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
#Copyright 2008 Carl Gherardi
|
||||||
|
#This program is free software: you can redistribute it and/or modify
|
||||||
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
#
|
||||||
|
#This program is distributed in the hope that it will be useful,
|
||||||
|
#but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
#GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
#You should have received a copy of the GNU Affero General Public License
|
||||||
|
#along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#In the "official" distribution you can find the license in
|
||||||
|
#agpl-3.0.txt in the docs folder of the package.
|
||||||
|
|
||||||
|
class DerivedStats():
|
||||||
|
def __init__(self, hand):
|
||||||
|
self.hand = hand
|
||||||
|
|
||||||
|
self.activeSeats = 0
|
||||||
|
self.position = 0
|
||||||
|
self.tourneyTypeId = 0
|
||||||
|
|
||||||
|
self.HDs = 0
|
||||||
|
self.street0VPI = 0
|
||||||
|
self.street0Aggr = 0
|
||||||
|
self.street0_3B4BChance = 0
|
||||||
|
self.street0_3B4BDone = 0
|
||||||
|
|
||||||
|
self.street1Seen = 0
|
||||||
|
self.street2Seen = 0
|
||||||
|
self.street3Seen = 0
|
||||||
|
self.street4Seen = 0
|
||||||
|
self.sawShowdown = 0
|
||||||
|
|
||||||
|
self.street1Aggr = 0
|
||||||
|
self.street2Aggr = 0
|
||||||
|
self.street3Aggr = 0
|
||||||
|
self.street4Aggr = 0
|
||||||
|
|
||||||
|
self.otherRaisedStreet1 = 0
|
||||||
|
self.otherRaisedStreet2 = 0
|
||||||
|
self.otherRaisedStreet3 = 0
|
||||||
|
self.otherRaisedStreet4 = 0
|
||||||
|
self.foldToOtherRaisedStreet1 = 0
|
||||||
|
self.foldToOtherRaisedStreet2 = 0
|
||||||
|
self.foldToOtherRaisedStreet3 = 0
|
||||||
|
self.foldToOtherRaisedStreet4 = 0
|
||||||
|
self.wonWhenSeenStreet1 = 0
|
||||||
|
self.wonAtSD = 0
|
||||||
|
|
||||||
|
self.stealAttemptChance = 0
|
||||||
|
self.stealAttempted = 0
|
||||||
|
self.foldBbToStealChance = 0
|
||||||
|
self.foldedBbToSteal = 0
|
||||||
|
self.foldSbToStealChance = 0
|
||||||
|
self.foldedSbToSteal = 0
|
||||||
|
|
||||||
|
self.street1CBChance = 0
|
||||||
|
self.street1CBDone = 0
|
||||||
|
self.street2CBChance = 0
|
||||||
|
self.street2CBDone = 0
|
||||||
|
self.street3CBChance = 0
|
||||||
|
self.street3CBDone = 0
|
||||||
|
self.street4CBChance = 0
|
||||||
|
self.street4CBDone = 0
|
||||||
|
|
||||||
|
self.foldToStreet1CBChance = 0
|
||||||
|
self.foldToStreet1CBDone = 0
|
||||||
|
self.foldToStreet2CBChance = 0
|
||||||
|
self.foldToStreet2CBDone = 0
|
||||||
|
self.foldToStreet3CBChance = 0
|
||||||
|
self.foldToStreet3CBDone = 0
|
||||||
|
self.foldToStreet4CBChance = 0
|
||||||
|
self.foldToStreet4CBDone = 0
|
||||||
|
|
||||||
|
self.totalProfit = 0
|
||||||
|
|
||||||
|
self.street1CheckCallRaiseChance = 0
|
||||||
|
self.street1CheckCallRaiseDone = 0
|
||||||
|
self.street2CheckCallRaiseChance = 0
|
||||||
|
self.street2CheckCallRaiseDone = 0
|
||||||
|
self.street3CheckCallRaiseChance = 0
|
||||||
|
self.street3CheckCallRaiseDone = 0
|
||||||
|
self.street4CheckCallRaiseChance = 0
|
||||||
|
self.street4CheckCallRaiseDone = 0
|
||||||
|
|
||||||
|
def getStats():
|
||||||
|
pass
|
|
@ -27,11 +27,14 @@ import time
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from Exceptions import *
|
from Exceptions import *
|
||||||
|
|
||||||
|
import DerivedStats
|
||||||
|
|
||||||
class Hand:
|
class Hand:
|
||||||
UPS = {'a':'A', 't':'T', 'j':'J', 'q':'Q', 'k':'K', 'S':'s', 'C':'c', 'H':'h', 'D':'d'}
|
UPS = {'a':'A', 't':'T', 'j':'J', 'q':'Q', 'k':'K', 'S':'s', 'C':'c', 'H':'h', 'D':'d'}
|
||||||
LCS = {'H':'h', 'D':'d', 'C':'c', 'S':'s'}
|
LCS = {'H':'h', 'D':'d', 'C':'c', 'S':'s'}
|
||||||
def __init__(self, sitename, gametype, handText):
|
def __init__(self, sitename, gametype, handText, builtFrom = "HHC"):
|
||||||
self.sitename = sitename
|
self.sitename = sitename
|
||||||
|
self.stats = DerivedStats.DerivedStats(self)
|
||||||
self.gametype = gametype
|
self.gametype = gametype
|
||||||
self.handText = handText
|
self.handText = handText
|
||||||
self.handid = 0
|
self.handid = 0
|
||||||
|
@ -369,14 +372,14 @@ Map the tuple self.gametype onto the pokerstars string describing it
|
||||||
|
|
||||||
|
|
||||||
class HoldemOmahaHand(Hand):
|
class HoldemOmahaHand(Hand):
|
||||||
def __init__(self, hhc, sitename, gametype, handText):
|
def __init__(self, hhc, sitename, gametype, handText, builtFrom = "HHC"):
|
||||||
if gametype['base'] != 'hold':
|
if gametype['base'] != 'hold':
|
||||||
pass # or indeed don't pass and complain instead
|
pass # or indeed don't pass and complain instead
|
||||||
logging.debug("HoldemOmahaHand")
|
logging.debug("HoldemOmahaHand")
|
||||||
self.streetList = ['BLINDSANTES', 'DEAL', 'PREFLOP','FLOP','TURN','RIVER'] # a list of the observed street names in order
|
self.streetList = ['BLINDSANTES', 'DEAL', 'PREFLOP','FLOP','TURN','RIVER'] # a list of the observed street names in order
|
||||||
self.communityStreets = ['FLOP', 'TURN', 'RIVER']
|
self.communityStreets = ['FLOP', 'TURN', 'RIVER']
|
||||||
self.actionStreets = ['PREFLOP','FLOP','TURN','RIVER']
|
self.actionStreets = ['PREFLOP','FLOP','TURN','RIVER']
|
||||||
Hand.__init__(self, sitename, gametype, handText)
|
Hand.__init__(self, sitename, gametype, handText, builtFrom = "HHC")
|
||||||
self.sb = gametype['sb']
|
self.sb = gametype['sb']
|
||||||
self.bb = gametype['bb']
|
self.bb = gametype['bb']
|
||||||
|
|
||||||
|
@ -527,7 +530,7 @@ Card ranks will be uppercased
|
||||||
print >>fh, "\n\n"
|
print >>fh, "\n\n"
|
||||||
|
|
||||||
class DrawHand(Hand):
|
class DrawHand(Hand):
|
||||||
def __init__(self, hhc, sitename, gametype, handText):
|
def __init__(self, hhc, sitename, gametype, handText, builtFrom = "HHC"):
|
||||||
if gametype['base'] != 'draw':
|
if gametype['base'] != 'draw':
|
||||||
pass # or indeed don't pass and complain instead
|
pass # or indeed don't pass and complain instead
|
||||||
self.streetList = ['BLINDSANTES', 'DEAL', 'DRAWONE', 'DRAWTWO', 'DRAWTHREE']
|
self.streetList = ['BLINDSANTES', 'DEAL', 'DRAWONE', 'DRAWTWO', 'DRAWTHREE']
|
||||||
|
@ -693,7 +696,7 @@ Card ranks will be uppercased
|
||||||
|
|
||||||
|
|
||||||
class StudHand(Hand):
|
class StudHand(Hand):
|
||||||
def __init__(self, hhc, sitename, gametype, handText):
|
def __init__(self, hhc, sitename, gametype, handText, builtFrom = "HHC"):
|
||||||
if gametype['base'] != 'stud':
|
if gametype['base'] != 'stud':
|
||||||
pass # or indeed don't pass and complain instead
|
pass # or indeed don't pass and complain instead
|
||||||
self.streetList = ['ANTES','THIRD','FOURTH','FIFTH','SIXTH','SEVENTH'] # a list of the observed street names in order
|
self.streetList = ['ANTES','THIRD','FOURTH','FIFTH','SIXTH','SEVENTH'] # a list of the observed street names in order
|
||||||
|
|
Loading…
Reference in New Issue
Block a user