Make Hand initable without a hhc
Proof of concept code in test_PokerStars.py
This commit is contained in:
parent
d847a71c6e
commit
faf19215e8
118
pyfpdb/Hand.py
118
pyfpdb/Hand.py
|
@ -399,25 +399,28 @@ class HoldemOmahaHand(Hand):
|
||||||
#Populate a HoldemOmahaHand
|
#Populate a HoldemOmahaHand
|
||||||
#Generally, we call 'read' methods here, which get the info according to the particular filter (hhc)
|
#Generally, we call 'read' methods here, which get the info according to the particular filter (hhc)
|
||||||
# which then invokes a 'addXXX' callback
|
# which then invokes a 'addXXX' callback
|
||||||
hhc.readHandInfo(self)
|
if builtFrom == "HHC":
|
||||||
hhc.readPlayerStacks(self)
|
hhc.readHandInfo(self)
|
||||||
hhc.compilePlayerRegexs(self)
|
hhc.readPlayerStacks(self)
|
||||||
hhc.markStreets(self)
|
hhc.compilePlayerRegexs(self)
|
||||||
hhc.readBlinds(self)
|
hhc.markStreets(self)
|
||||||
hhc.readButton(self)
|
hhc.readBlinds(self)
|
||||||
hhc.readHeroCards(self)
|
hhc.readButton(self)
|
||||||
hhc.readShowdownActions(self)
|
hhc.readHeroCards(self)
|
||||||
# Read actions in street order
|
hhc.readShowdownActions(self)
|
||||||
for street in self.communityStreets:
|
# Read actions in street order
|
||||||
if self.streets[street]:
|
for street in self.communityStreets:
|
||||||
hhc.readCommunityCards(self, street)
|
if self.streets[street]:
|
||||||
for street in self.actionStreets:
|
hhc.readCommunityCards(self, street)
|
||||||
if self.streets[street]:
|
for street in self.actionStreets:
|
||||||
hhc.readAction(self, street)
|
if self.streets[street]:
|
||||||
hhc.readCollectPot(self)
|
hhc.readAction(self, street)
|
||||||
hhc.readShownCards(self)
|
hhc.readCollectPot(self)
|
||||||
self.totalPot() # finalise it (total the pot)
|
hhc.readShownCards(self)
|
||||||
hhc.getRake(self)
|
self.totalPot() # finalise it (total the pot)
|
||||||
|
hhc.getRake(self)
|
||||||
|
elif builtFrom == "DB":
|
||||||
|
self.select("dummy") # Will need a handId
|
||||||
|
|
||||||
def addHoleCards(self, cards, player, shown=False):
|
def addHoleCards(self, cards, player, shown=False):
|
||||||
"""\
|
"""\
|
||||||
|
@ -553,24 +556,26 @@ class DrawHand(Hand):
|
||||||
self.sb = gametype['sb']
|
self.sb = gametype['sb']
|
||||||
self.bb = gametype['bb']
|
self.bb = gametype['bb']
|
||||||
# Populate the draw hand.
|
# Populate the draw hand.
|
||||||
hhc.readHandInfo(self)
|
if builtFrom == "HHC":
|
||||||
hhc.readPlayerStacks(self)
|
hhc.readHandInfo(self)
|
||||||
hhc.compilePlayerRegexs(self)
|
hhc.readPlayerStacks(self)
|
||||||
hhc.markStreets(self)
|
hhc.compilePlayerRegexs(self)
|
||||||
hhc.readBlinds(self)
|
hhc.markStreets(self)
|
||||||
hhc.readButton(self)
|
hhc.readBlinds(self)
|
||||||
hhc.readShowdownActions(self)
|
hhc.readButton(self)
|
||||||
# Read actions in street order
|
hhc.readShowdownActions(self)
|
||||||
for street in self.streetList:
|
# Read actions in street order
|
||||||
if self.streets[street]:
|
for street in self.streetList:
|
||||||
# hhc.readCommunityCards(self, street)
|
if self.streets[street]:
|
||||||
hhc.readDrawCards(self, street)
|
# hhc.readCommunityCards(self, street)
|
||||||
hhc.readAction(self, street)
|
hhc.readDrawCards(self, street)
|
||||||
hhc.readCollectPot(self)
|
hhc.readAction(self, street)
|
||||||
hhc.readShownCards(self)
|
hhc.readCollectPot(self)
|
||||||
self.totalPot() # finalise it (total the pot)
|
hhc.readShownCards(self)
|
||||||
hhc.getRake(self)
|
self.totalPot() # finalise it (total the pot)
|
||||||
|
hhc.getRake(self)
|
||||||
|
elif builtFrom == "DB":
|
||||||
|
self.select("dummy") # Will need a handId
|
||||||
|
|
||||||
# Draw games (at least Badugi has blinds - override default Holdem addBlind
|
# Draw games (at least Badugi has blinds - override default Holdem addBlind
|
||||||
def addBlind(self, player, blindtype, amount):
|
def addBlind(self, player, blindtype, amount):
|
||||||
|
@ -733,24 +738,27 @@ class StudHand(Hand):
|
||||||
#Populate the StudHand
|
#Populate the StudHand
|
||||||
#Generally, we call a 'read' method here, which gets the info according to the particular filter (hhc)
|
#Generally, we call a 'read' method here, which gets the info according to the particular filter (hhc)
|
||||||
# which then invokes a 'addXXX' callback
|
# which then invokes a 'addXXX' callback
|
||||||
hhc.readHandInfo(self)
|
if builtFrom == "HHC":
|
||||||
hhc.readPlayerStacks(self)
|
hhc.readHandInfo(self)
|
||||||
hhc.compilePlayerRegexs(self)
|
hhc.readPlayerStacks(self)
|
||||||
hhc.markStreets(self)
|
hhc.compilePlayerRegexs(self)
|
||||||
hhc.readAntes(self)
|
hhc.markStreets(self)
|
||||||
hhc.readBringIn(self)
|
hhc.readAntes(self)
|
||||||
# hhc.readShowdownActions(self) # not done yet
|
hhc.readBringIn(self)
|
||||||
# Read actions in street order
|
#hhc.readShowdownActions(self) # not done yet
|
||||||
for street in self.streetList:
|
# Read actions in street order
|
||||||
if self.streets[street]:
|
for street in self.streetList:
|
||||||
logging.debug(street)
|
if self.streets[street]:
|
||||||
logging.debug(self.streets[street])
|
logging.debug(street)
|
||||||
hhc.readStudPlayerCards(self, street)
|
logging.debug(self.streets[street])
|
||||||
hhc.readAction(self, street)
|
hhc.readStudPlayerCards(self, street)
|
||||||
hhc.readCollectPot(self)
|
hhc.readAction(self, street)
|
||||||
# hhc.readShownCards(self) # not done yet
|
hhc.readCollectPot(self)
|
||||||
self.totalPot() # finalise it (total the pot)
|
#hhc.readShownCards(self) # not done yet
|
||||||
hhc.getRake(self)
|
self.totalPot() # finalise it (total the pot)
|
||||||
|
hhc.getRake(self)
|
||||||
|
elif builtFrom == "DB":
|
||||||
|
self.select("dummy") # Will need a handId
|
||||||
|
|
||||||
def addPlayerCards(self, player, street, open=[], closed=[]):
|
def addPlayerCards(self, player, street, open=[], closed=[]):
|
||||||
"""\
|
"""\
|
||||||
|
|
|
@ -46,7 +46,7 @@ follow : whether to tail -f the input"""
|
||||||
if autostart:
|
if autostart:
|
||||||
self.start()
|
self.start()
|
||||||
|
|
||||||
|
|
||||||
def compilePlayerRegexs(self, hand):
|
def compilePlayerRegexs(self, hand):
|
||||||
players = set([player[1] for player in hand.players])
|
players = set([player[1] for player in hand.players])
|
||||||
if not players <= self.compiledPlayers: # x <= y means 'x is subset of y'
|
if not players <= self.compiledPlayers: # x <= y means 'x is subset of y'
|
||||||
|
|
|
@ -1,10 +1,21 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import PokerStarsToFpdb
|
import PokerStarsToFpdb
|
||||||
|
from Hand import *
|
||||||
import py
|
import py
|
||||||
|
|
||||||
#regression-test-files/stars/badugi/ring-fl-badugi.txt
|
#regression-test-files/stars/badugi/ring-fl-badugi.txt
|
||||||
# s0rrow: start $30.00 end: $22.65 total: ($7.35)
|
# s0rrow: start $30.00 end: $22.65 total: ($7.35)
|
||||||
|
|
||||||
|
gametype = {'type':'ring', 'base':'draw', 'category':'badugi', 'limitType':'fl', 'sb':'0.25', 'bb':'0.50','currency':'USD'}
|
||||||
|
text = ""
|
||||||
|
|
||||||
|
hhc = PokerStarsToFpdb.PokerStars(autostart=False)
|
||||||
|
|
||||||
|
h = HoldemOmahaHand(None, "ASite", gametype, text, builtFrom = "Test")
|
||||||
|
h.addPlayer("1", "s0rrow", "100000")
|
||||||
|
|
||||||
|
hhc.compilePlayerRegexs(h)
|
||||||
|
|
||||||
|
|
||||||
def checkGameInfo(hhc, header, info):
|
def checkGameInfo(hhc, header, info):
|
||||||
assert hhc.determineGameType(header) == info
|
assert hhc.determineGameType(header) == info
|
||||||
|
|
Loading…
Reference in New Issue
Block a user