Stove: Add JTs+ syntax
JTs+ Should now expand as expected.
This commit is contained in:
parent
6213f9093b
commit
2da2130836
|
@ -15,10 +15,13 @@ import L10n
|
||||||
_ = L10n.get_translation()
|
_ = L10n.get_translation()
|
||||||
|
|
||||||
import sys, random
|
import sys, random
|
||||||
|
import re
|
||||||
import pokereval
|
import pokereval
|
||||||
|
|
||||||
SUITS = ['h', 'd', 's', 'c']
|
SUITS = ['h', 'd', 's', 'c']
|
||||||
|
|
||||||
|
CONNECTORS = ['32', '43', '54', '65', '76', '87', '98', 'T9', 'JT', 'QJ', 'KQ', 'AK']
|
||||||
|
|
||||||
ANY = 0
|
ANY = 0
|
||||||
SUITED = 1
|
SUITED = 1
|
||||||
OFFSUIT = 2
|
OFFSUIT = 2
|
||||||
|
@ -65,14 +68,7 @@ class Stove:
|
||||||
hands_in_range = string.strip().split(',')
|
hands_in_range = string.strip().split(',')
|
||||||
for h in hands_in_range:
|
for h in hands_in_range:
|
||||||
_h = h.strip()
|
_h = h.strip()
|
||||||
if len(_h) > 3:
|
h_range.expand(expand_hands(_h, self.hand, self.board))
|
||||||
cc = _h.split()
|
|
||||||
r1 = cc[0]
|
|
||||||
r2 = cc[1]
|
|
||||||
vp = Cards(r1, r2)
|
|
||||||
h_range.add(vp)
|
|
||||||
else:
|
|
||||||
h_range.expand(expand_hands(_h, self.hand, self.board))
|
|
||||||
|
|
||||||
self.h_range = h_range
|
self.h_range = h_range
|
||||||
|
|
||||||
|
@ -83,7 +79,7 @@ class Cards:
|
||||||
self.c2 = c2
|
self.c2 = c2
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
return [c1, c2]
|
return [self.c1, self.c2]
|
||||||
|
|
||||||
class Board:
|
class Board:
|
||||||
def __init__(self, b1=None, b2=None, b3=None, b4=None, b5=None):
|
def __init__(self, b1=None, b2=None, b3=None, b4=None, b5=None):
|
||||||
|
@ -127,7 +123,7 @@ class Range:
|
||||||
def get(self):
|
def get(self):
|
||||||
return sorted(self.__hands)
|
return sorted(self.__hands)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class EV:
|
class EV:
|
||||||
def __init__(self, plays, win, tie, lose):
|
def __init__(self, plays, win, tie, lose):
|
||||||
|
@ -175,6 +171,35 @@ def expand_hands(abbrev, hand, board):
|
||||||
known_cards.update(set([hand.c2, hand.c2]))
|
known_cards.update(set([hand.c2, hand.c2]))
|
||||||
known_cards.update(set([board.b1, board.b2, board.b3, board.b4, board.b5]))
|
known_cards.update(set([board.b1, board.b2, board.b3, board.b4, board.b5]))
|
||||||
|
|
||||||
|
re.search('[2-9TJQKA]{2}(s|o)',abbrev)
|
||||||
|
|
||||||
|
if re.search('^[2-9TJQKA]{2}(s|o)$',abbrev): #AKs or AKo
|
||||||
|
return standard_expand(abbrev, hand, known_cards)
|
||||||
|
elif re.search('^[2-9TJQKA]{2}(s|o)\+$',abbrev): #76s+ or 76o+
|
||||||
|
return iterative_expand(abbrev, hand, known_cards)
|
||||||
|
#elif: AhXh
|
||||||
|
#elif: Ah6h+A
|
||||||
|
|
||||||
|
def iterative_expand(abbrev, hand, known_cards):
|
||||||
|
r1 = abbrev[0]
|
||||||
|
r2 = abbrev[1]
|
||||||
|
|
||||||
|
h_range = []
|
||||||
|
considered = set()
|
||||||
|
|
||||||
|
idx = CONNECTORS.index('%s%s' % (r1, r2))
|
||||||
|
|
||||||
|
ltr = abbrev[2]
|
||||||
|
|
||||||
|
h_range = []
|
||||||
|
for h in CONNECTORS[idx:]:
|
||||||
|
abr = "%s%s" % (h, ltr)
|
||||||
|
h_range += standard_expand(abr, hand, known_cards)
|
||||||
|
|
||||||
|
return h_range
|
||||||
|
|
||||||
|
|
||||||
|
def standard_expand(abbrev, hand, known_cards):
|
||||||
# Card ranks may be different
|
# Card ranks may be different
|
||||||
r1 = abbrev[0]
|
r1 = abbrev[0]
|
||||||
r2 = abbrev[1]
|
r2 = abbrev[1]
|
||||||
|
@ -228,7 +253,7 @@ def odds_for_hand(hand1, hand2, board, iterations):
|
||||||
board = board,
|
board = board,
|
||||||
iterations = iterations
|
iterations = iterations
|
||||||
)
|
)
|
||||||
|
|
||||||
plays = int(res['info'][0])
|
plays = int(res['info'][0])
|
||||||
eval = res['eval'][0]
|
eval = res['eval'][0]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user