def analyze_flop(self, game_state): result = None bank = game_state.bank my_stack = game_state.player.money if my_stack: hand = poker.recognize_hand(game_state.player.cards, game_state.table_cards) card_set = game_state.player.cards + game_state.table_cards if game_state.can_check: # check or raise flush_len = 4 flush_possibility = poker.check_flush(card_set, flush_len) # pair or better or 4 cards of the same suit if hand[0] > 0 or flush_possibility: result = 'bet' else: result = 'check' else: flush_len = 2 flush_possibility = poker.check_flush(card_set, flush_len) if flush_possibility: result = 'fold' elif hand[0] > 1: # two pairs or better result = 'raise' else: result = 'call' else: result = 'check' return result
def analyze_turn(self, game_state): result = None bank = game_state.bank my_stack = game_state.player.money if my_stack: hand = poker.recognize_hand(game_state.player.cards, game_state.table_cards) card_set = game_state.player.cards + game_state.table_cards if game_state.can_check: if hand[0] > 2: result = 'bet' else: result = 'check' else: better_than_two_pairs = hand[0] > 2 better_than_three_of_a_kind = hand[0] > 3 better_than_flush = hand[0] > 5 # change, need to recognize if pair lies on the table pair_of_q_or_higher = hand[0] > 1 and max(lambda c: cards.values.index(c), cards) > 9 flush_len = 3 flush_possibility = poker.check_flush(card_set, flush_len) if flush_possibility: if better_than_flush: result = 'call' else: result = 'fold' else: if better_than_flush: result = 'raise' else: if better_than_three_of_a_kind: result = 'call' else: result = 'fold' else: result = 'check' return result