Everleaf update - Holecards read
This commit is contained in:
parent
21df5900e9
commit
6e182831ac
|
@ -22,36 +22,43 @@ from HandHistoryConverter import *
|
|||
|
||||
# Everleaf HH format
|
||||
|
||||
#Everleaf Gaming Game #55198191
|
||||
#***** Hand history for game #55198191 *****
|
||||
#Blinds $0.50/$1 NL Hold'em - 2008/09/01 - 10:02:11
|
||||
# Everleaf Gaming Game #55208539
|
||||
# ***** Hand history for game #55208539 *****
|
||||
# Blinds $0.50/$1 NL Hold'em - 2008/09/01 - 13:35:01
|
||||
# Table Speed Kuala
|
||||
#Seat 8 is the button
|
||||
#Total number of players: 10
|
||||
#Seat 1: spicybum ( $ 77.50 USD )
|
||||
#Seat 2: harrydebeng ( new player )
|
||||
#Seat 3: EricBlade ( new player )
|
||||
#Seat 4: dollar_hecht ( $ 16.40 USD )
|
||||
#Seat 5: Apolon76 ( $ 154.10 USD )
|
||||
#Seat 6: dogge ( new player )
|
||||
#Seat 7: RonKoro ( $ 25.53 USD )
|
||||
#Seat 8: jay68w ( $ 48.50 USD )
|
||||
#Seat 9: KillerQueen1 ( $ 51.28 USD )
|
||||
#Seat 10: Cheburashka ( $ 49.61 USD )
|
||||
#KillerQueen1: posts small blind [$ 0.50 USD]
|
||||
#Cheburashka: posts big blind [$ 1 USD]
|
||||
# Seat 1 is the button
|
||||
# Total number of players: 9
|
||||
# Seat 1: BadBeatBox ( $ 98.97 USD )
|
||||
# Seat 3: EricBlade ( $ 73.96 USD )
|
||||
# Seat 4: randy888 ( $ 196.50 USD )
|
||||
# Seat 5: BaronSengir ( $ 182.80 USD )
|
||||
# Seat 6: dogge ( $ 186.06 USD )
|
||||
# Seat 7: wings ( $ 50 USD )
|
||||
# Seat 8: schoffeltje ( $ 282.05 USD )
|
||||
# Seat 9: harrydebeng ( $ 109.45 USD )
|
||||
# Seat 10: smaragdar ( $ 96.50 USD )
|
||||
# EricBlade: posts small blind [$ 0.50 USD]
|
||||
# randy888: posts big blind [$ 1 USD]
|
||||
# wings: posts big blind [$ 1 USD]
|
||||
# ** Dealing down cards **
|
||||
#spicybum folds
|
||||
#dollar_hecht calls [$ 1 USD]
|
||||
#Apolon76 folds
|
||||
#RonKoro folds
|
||||
#jay68w raises [$ 4.50 USD]
|
||||
#KillerQueen1 folds
|
||||
#Cheburashka folds
|
||||
#dollar_hecht folds
|
||||
#jay68w does not show cards
|
||||
#jay68w wins $ 3.50 USD from main pot
|
||||
|
||||
# Dealt to EricBlade [ qc, 3c ]
|
||||
# BaronSengir folds
|
||||
# dogge folds
|
||||
# wings raises [$ 2.50 USD]
|
||||
# schoffeltje folds
|
||||
# harrydebeng calls [$ 3.50 USD]
|
||||
# smaragdar raises [$ 15.50 USD]
|
||||
# BadBeatBox folds
|
||||
# EricBlade folds
|
||||
# randy888 folds
|
||||
# wings calls [$ 12 USD]
|
||||
# harrydebeng folds
|
||||
# ** Dealing Flop ** [ qs, 3d, 8h ]
|
||||
# wings: bets [$ 34.50 USD]
|
||||
# smaragdar calls [$ 34.50 USD]
|
||||
# ** Dealing Turn ** [ 2d ]
|
||||
# ** Dealing River ** [ 6c ]
|
||||
# smaragdar wins $ 102 USD from main pot with a pair of aces [ ad, ah, qs, 8h, 6c ]
|
||||
|
||||
|
||||
class Everleaf(HandHistoryConverter):
|
||||
|
@ -66,6 +73,7 @@ class Everleaf(HandHistoryConverter):
|
|||
self.rexx.setPlayerInfoRegex('Seat (?P<SEAT>[0-9]+): (?P<PNAME>.*) \( \$ (?P<CASH>[.0-9]+) USD \)')
|
||||
self.rexx.setPostSbRegex('.*\n(?P<PNAME>.*): posts small blind \[')
|
||||
self.rexx.setPostBbRegex('.*\n(?P<PNAME>.*): posts big blind \[')
|
||||
self.rexx.setHeroCardsRegex('.*\nDealt\sto\s(?P<PNAME>.*)\s\[ (?P<HOLECARDS>.*) \]')
|
||||
self.rexx.compileRegexes()
|
||||
|
||||
def readSupportedGames(self):
|
||||
|
@ -78,8 +86,6 @@ class Everleaf(HandHistoryConverter):
|
|||
m = self.rexx.game_info_re.search(self.obs)
|
||||
gametype = gametype + [m.group('SB')]
|
||||
gametype = gametype + [m.group('BB')]
|
||||
# gametype = gametype + [self.float2int(m.group('SB'))]
|
||||
# gametype = gametype + [self.float2int(m.group('BB'))]
|
||||
|
||||
return gametype
|
||||
|
||||
|
@ -87,7 +93,7 @@ class Everleaf(HandHistoryConverter):
|
|||
m = self.rexx.hand_info_re.search(hand.string)
|
||||
hand.handid = m.group('HID')
|
||||
hand.tablename = m.group('TABLE')
|
||||
# These work, but the info is already in the Hand class - should be usecd for tourneys though.
|
||||
# These work, but the info is already in the Hand class - should be used for tourneys though.
|
||||
# m.group('SB')
|
||||
# m.group('BB')
|
||||
# m.group('GAMETYPE')
|
||||
|
@ -121,6 +127,22 @@ class Everleaf(HandHistoryConverter):
|
|||
for a in m:
|
||||
hand.posted = hand.posted + [a.group('PNAME')]
|
||||
|
||||
def readHeroCards(self, hand):
|
||||
m = self.rexx.hero_cards_re.search(hand.string)
|
||||
if(m == None):
|
||||
#Not involved in hand
|
||||
hand.involved = False
|
||||
else:
|
||||
hand.hero = m.group('PNAME')
|
||||
hand.holecards = m.group('HOLECARDS')
|
||||
hand.holecards = hand.holecards.replace(',','')
|
||||
#Must be a better way to do the following tr akqjt AKQJT
|
||||
hand.holecards = hand.holecards.replace('a','A')
|
||||
hand.holecards = hand.holecards.replace('k','K')
|
||||
hand.holecards = hand.holecards.replace('q','Q')
|
||||
hand.holecards = hand.holecards.replace('j','J')
|
||||
hand.holecards = hand.holecards.replace('t','T')
|
||||
|
||||
def readAction(self):
|
||||
pass
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ class FpdbRegex:
|
|||
self.__UNCALLED_BET_REGEX='^Uncalled bet \(\$([.\d]+)\) returned to (.*)'
|
||||
self.__POT_AND_RAKE_REGEX='^Total\spot\s\$([.\d]+).*\|\sRake\s\$([.\d]+)'
|
||||
self.__COLLECT_POT_REGEX='^(.*)\scollected\s\$([.\d]+)\sfrom\s((main|side)\s)?pot'
|
||||
self.__POCKET_CARDS_REGEX='^Dealt\sto\s(.*)\s\[(\S{2})\s(\S{2})\]'
|
||||
self.__HERO_CARDS_REGEX='^Dealt\sto\s(.*)\s\[(\S{2})\s(\S{2})\]'
|
||||
self.__SHOWN_CARDS_REGEX='^(.*):\sshows\s\[(\S{2})\s(\S{2})\]'
|
||||
self.__ACTION_STEP_REGEX='^(.*):\s(bets|checks|raises|calls|folds)((\s\$([.\d]+))?(\sto\s\$([.\d]+))?)?'
|
||||
|
||||
|
@ -74,7 +74,7 @@ class FpdbRegex:
|
|||
self.summary_re = re.compile(self.__SUMMARY_REGEX)
|
||||
self.uncalled_bet_re = re.compile(self.__UNCALLED_BET_REGEX)
|
||||
self.collect_pot_re = re.compile(self.__COLLECT_POT_REGEX)
|
||||
self.pocket_cards_re = re.compile(self.__POCKET_CARDS_REGEX)
|
||||
self.hero_cards_re = re.compile(self.__HERO_CARDS_REGEX)
|
||||
self.cards_shown_re = re.compile(self.__SHOWN_CARDS_REGEX)
|
||||
self.summary_cards_re = re.compile(self.__SUMMARY_CARDS_REGEX)
|
||||
self.summary_cards_extra_re = re.compile(self.__SUMMARY_CARDS_EXTRA_REGEX)
|
||||
|
@ -138,8 +138,8 @@ class FpdbRegex:
|
|||
def setCollectPotRegex(self, string):
|
||||
self.__COLLECT_POT_REGEX = string
|
||||
|
||||
def setPocketCardsRegex(self, string):
|
||||
self.__POCKET_CARDS_REGEX = string
|
||||
def setHeroCardsRegex(self, string):
|
||||
self.__HERO_CARDS_REGEX = string
|
||||
|
||||
def setShownCardsRegex(self, string):
|
||||
self.__SHOWN_CARDS_REGEX = string
|
||||
|
|
|
@ -65,7 +65,11 @@ class HandHistoryConverter:
|
|||
self.readHandInfo(hand)
|
||||
self.readPlayerStacks(hand)
|
||||
self.readBlinds(hand)
|
||||
self.readHeroCards(hand)
|
||||
if(hand.involved == True):
|
||||
self.writeHand("output file", hand)
|
||||
else:
|
||||
pass #Don't write out observed hands
|
||||
|
||||
# Functions to be implemented in the inheriting class
|
||||
def readSupportedGames(self): abstract
|
||||
|
@ -87,6 +91,7 @@ class HandHistoryConverter:
|
|||
# ['player1name', 'player2name', ...] where player1name is the sb and player2name is bb,
|
||||
# addtional players are assumed to post a bb oop
|
||||
def readBlinds(self, hand): abstract
|
||||
def readHeroCards(self, hand): abstract
|
||||
def readAction(self): abstract
|
||||
|
||||
def sanityCheck(self):
|
||||
|
@ -157,7 +162,7 @@ class HandHistoryConverter:
|
|||
print "XXXXXXXXX FIXME XXXXXXXX"
|
||||
|
||||
print "*** HOLE CARDS ***"
|
||||
# print "Dealt to " + hero + " [" + holecards + "]"
|
||||
print "Dealt to %s [%s]" %(hand.hero ,hand.holecards)
|
||||
#
|
||||
## ACTION STUFF
|
||||
#
|
||||
|
@ -200,6 +205,9 @@ class Hand:
|
|||
self.seating = []
|
||||
self.players = []
|
||||
self.posted = []
|
||||
self.involved = True
|
||||
self.hero = "Hiro"
|
||||
self.holecards = "Xx Xx"
|
||||
self.action = []
|
||||
|
||||
def printHand(self):
|
||||
|
@ -217,3 +225,4 @@ class Hand:
|
|||
print self.players
|
||||
print self.posted
|
||||
print self.action
|
||||
print self.involved
|
||||
|
|
Loading…
Reference in New Issue
Block a user