Exemple #1
0
def createLikelyHandSeries(rowPosition,
                           TrainingSetHoleCards,
                           TrainingSetTableCards=None):
    #take in hand, compute likely outcome for each hand
    if TrainingSetTableCards is None:
        #handStats = holdem_calc.calculate(['Ah', 'Td', '5c'], True, 1, None, ['9d', ' 7d'], True)
        #winningPercentages, playerHistograms = holdem_calc.calculate(None, True, 1, None, TrainingSetHoleCards, True)
        #print winningPercentages, playerHistograms
        print holdem_calc.calculate(None, True, 1, None, TrainingSetHoleCards,
                                    True)
    return None
def Pokert_card_map(output_map, list_show):
    new_map = output_map.copy()
    none_output = holdem_calc.calculate(None, True, 1, None, list_show, False)
    for user in new_map:
        new_map[user] = none_output[new_map[user]]
    print(output_map)
    return new_map
def give_to_prossess(sub_df):
    output_map = {}
    sub_df = modify_card(sub_df)
    list_show = []
    player_counter = 1
    for index, row in sub_df.iterrows():
        if str(row['idk']) != 'nan':
            output_map[row['User_ID']] = player_counter
            player_counter = player_counter + 1
            print(row['Current_Card'])
            for i in row['Current_Card']:
                list_show.append(i)
    print(list_show)
    print(output_map)
    Pokert_card = Pokert_card_map(output_map, list_show)
    for index, row in sub_df.iterrows():
        if (row['User_ID'] in Pokert_card) and (str(
                row['Current_Card']) == 'Empty') and (str(row['Current_Round'])
                                                      == 'POCKET CARDS'):
            sub_df.at[index, 'Equity'] = Pokert_card[row['User_ID']]
    for index, row in sub_df.iterrows():
        if (row['User_ID']
                in output_map) and (str(row['Current_Card']) != 'Empty') and (
                    str(row['Action']) != 'Show'
                    and str(row['Action']) != 'Does not show'):
            player_order = output_map[row['User_ID']]
            print(player_order)
            print(str(row['Current_Card']) + str(list_show))
            print(index)
            sub_df.at[index, 'Equity'] = holdem_calc.calculate(
                row['Current_Card'], True, 1, None, list_show,
                False)[player_order]
    print(sub_df)
    return sub_df
Exemple #4
0
 def zračunaj_verjetnost_zmage(self):
     """Izračuna približno verjetnost zmage igralca s pomočjo simulacije."""
     karti_igralca = self.karte
     karta_1 = spremeni_zapis_kart().get(karti_igralca[0])
     karta_2 = spremeni_zapis_kart().get(karti_igralca[1])
     holdem = holdem_calc.calculate(None, False, 5, None,
                                    [karta_1, karta_2, "?", "?"], False)
     return holdem[1]
Exemple #5
0
def calc_win_prob(hole_cards, board_cards, data):
    """
    Calculate the probability to win current players.
    Compute the probability to win one player first
    And then take the power of virtual player count
    """
    cards_to_evaluate = hole_cards + ["?", "?"]
    exact_calc = True
    verbose = True
    # claculate probability to win a player
    win_one_prob = holdem_calc.calculate(board_cards, exact_calc, 1, None, cards_to_evaluate, verbose)

    win_all_prob = (win_one_prob[0] + win_one_prob[1]) ** virtual_player_count(data)
    print "==== Win probability ==== " + str(win_all_prob)
    return win_all_prob
Exemple #6
0
def calculate_equities(board, holdings, num_sims):
    # HACK to make it work with holdem_calculate
    # TODO:relies on dict ordering, change ASAP
    holding_list = [
        val for sublist in [x.get_card_str() for x in holdings.values()]
        for val in sublist
    ]
    sim_output = holdem_calc.calculate(board, False, num_sims, None,
                                       holding_list, False)

    players = list(holdings.keys())
    equities = {}
    equities['tie'] = sim_output[0]

    i = 1
    for player in players:
        equities[player] = round(sim_output[i], 3)
        i += 1

    return equities
                            firstsuit_player1 = 's'
                            secondsuit_player1 = 's'
                        else:
                            firstsuit_player1 = 's'
                            secondsuit_player1 = 'h'
                        if (player2_suitcombos[player2_suitcombo] == 's'):
                            firstsuit_player2 = 'd'
                            secondsuit_player2 = 'd'
                        else:
                            firstsuit_player2 = 'd'
                            secondsuit_player2 = 'c'
                        #print(ranks[firstrank_player1] + firstsuit_player1 + ranks[secondrank_player1] + secondsuit_player1 + ' ' + ranks[firstrank_player2] + firstsuit_player2 + ranks[secondrank_player2] + secondsuit_player2)
                        count = count + 1
                        probs = holdem_calc.calculate(
                            None, False, 10000, None, [
                                ranks[firstrank_player1] + firstsuit_player1,
                                ranks[secondrank_player1] + secondsuit_player1,
                                ranks[firstrank_player2] + firstsuit_player2,
                                ranks[secondrank_player2] + secondsuit_player2
                            ], False)
                        equities[ranks[firstrank_player1] +
                                 ranks[secondrank_player1] +
                                 player1_suitcombos[player1_suitcombo] + ' ' +
                                 ranks[firstrank_player2] +
                                 ranks[secondrank_player2] +
                                 player2_suitcombos[player2_suitcombo]] = (
                                     (probs[0] / 2) + probs[1])
                        if (count % 100 == 0):
                            print('{} combos processed'.format(count))

saveDict(equities, 'equities')
Exemple #8
0
file_path = 'C:\\Users\\moliu\\Desktop\\Texas Holdem\\ProbabilityofWinning\\holdem_calc-master\\'
offsuitedpath = file_path + 'off_suited_hands.txt'
suitedpath = file_path + 'suited_hands.txt'

#calculate winning probability of different off suit hands
ohandsList = []
for l in open(offsuitedpath):
    row = [x for x in l.split()]
    if len(row) > 0:
        ohandsList.append(row)

probabilityList = []
for eachHand in shandsList:
    print(eachHand)
    sprobabilityList.append(
        holdem_calc.calculate(None, False, 200, None, eachHand, False))

#calculate winning probability of different suited hands
shandsList = []
for l in open(suitedpath):
    row = [x for x in l.split()]
    if len(row) > 0:
        shandsList.append(row)

sprobabilityList = []
for eachHand in shandsList:
    print(eachHand)
    sprobabilityList.append(
        holdem_calc.calculate(None, False, 200, None, eachHand, False))

#sort data