From 115d187ed1f1b52009f0708896232e1f5867eef4 Mon Sep 17 00:00:00 2001 From: donoban Date: Fri, 4 Feb 2011 05:23:52 +0100 Subject: [PATCH] calc34BetStreet0() rewritten More efficient with use of break and continue --- pyfpdb/DerivedStats.py | 44 ++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index 5ab047de..2bb3542f 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -446,21 +446,35 @@ class DerivedStats(): for action in hand.actions[hand.actionStreets[1]]: # FIXME: fill other(3|4)BStreet0 - i have no idea what does it mean pname, act, aggr = action[0], action[1], action[1] in ('raises', 'bets') - if aggr and bet_level == 1: - first_agressor = pname - if aggr and bet_level == 2: - self.handsplayers[pname]['street0_3BDone'] = True - second_agressor = pname - self.handsplayers[pname]['street0_4BDone'] = aggr and bet_level == 3 and pname == second_agressor - self.handsplayers[pname]['street0_3BChance'] = self.handsplayers[pname]['street0_3BChance'] or bet_level == 2 - self.handsplayers[pname]['street0_4BChance'] = self.handsplayers[pname]['street0_4BChance'] or bet_level == 3 and pname == first_agressor - self.handsplayers[pname]['street0_FoldTo3BChance'] = self.handsplayers[pname]['street0_FoldTo3BChance'] or (bet_level == 3 and pname == first_agressor) - self.handsplayers[pname]['street0_FoldTo4BChance'] = self.handsplayers[pname]['street0_FoldTo4BChance'] or (bet_level == 4 and pname == second_agressor) - self.handsplayers[pname]['street0_FoldTo3BDone'] = act == 'folds' and bet_level == 3 and pname == first_agressor - self.handsplayers[pname]['street0_FoldTo4BDone'] = act == 'folds' and bet_level == 4 and pname == second_agressor - if aggr: - bet_level += 1 - + if bet_level == 1: + if aggr: + first_agressor = pname + bet_level += 1 + continue + elif bet_level == 2: + self.handsplayers[pname]['street0_3BChance'] = True + if aggr: + self.handsplayers[pname]['street0_3BDone'] = True + second_agressor = pname + bet_level += 1 + continue + elif bet_level == 3: + if pname == first_agressor: + self.handsplayers[pname]['street0_4BChance'] = True + self.handsplayers[pname]['street0_FoldTo3BChance'] = True + if aggr: + self.handsplayers[pname]['street0_4BDone'] = True + bet_level += 1 + elif act == 'folds': + self.handsplayers[pname]['street0_FoldTo3BDone'] = True + break + continue + elif bet_level == 4: + if pname == second_agressor: + self.handsplayers[pname]['street0_FoldTo4BChance'] = True + if act == 'folds': + self.handsplayers[pname]['street0_FoldTo4BDone'] = True + break def calcCBets(self, hand): """Fill streetXCBChance, streetXCBDone, foldToStreetXCBDone, foldToStreetXCBChance