def naive_rank(pocket, community_cards): print("Evaluating") pocket = [Card(v, s) for v, s in pocket] community_cards = [Card(v, s) for v, s in community_cards] unopened_slots = min(3, 7 - len(pocket) - len(community_cards)) deck = Deck() deck.removeall(pocket + community_cards) count = 0 _rank = 0 for possibility in itertools.combinations(deck.cards, r=unopened_slots): _rank += max(generate_possible_hands(pocket, community_cards + list(possibility))).rank count += 1 LOGGER.debug("Evaluated %d hands" % count) return _rank / count
def __init__(self, players, button_player, small_blind, event_queue, game): self.game = game self.event_queue = event_queue self.players = players[:] self.folded_players = [] self.small_blind = small_blind self.betting_player = None self.pot = None self.deck = Deck() self.community_cards = [] self.button_player = button_player self.pot = Pot(self.small_blind) self.action_log = [] LOGGER.info("Dealing cards") for player in self.players: player.set_pocket(self.deck.draw_single(), self.deck.draw_single())