def calculateProbabilities(allHoleCombinations, pre_flop_table):
    for n in range(1, 10):  # For 1 til 9 motstandere
        for comb in allHoleCombinations:  # For alle kombinasjoner av hullkort
            comb = list(comb)
            sorter(comb)
            classAlreadyCalculated = False
            # Her sjekkes det om det allerede er regnet ut sansynligheten for aa vinne for denne ekvivalensklassen
            if comb[0][1] == comb[1][1]:
                if pre_flop_table[comb[0][0] - 2][comb[1][0] - 2][1][n -
                                                                     1] != -1:
                    classAlreadyCalculated = True
            elif pre_flop_table[comb[0][0] - 2][comb[1][0] - 2][0][n -
                                                                   1] != -1:
                classAlreadyCalculated = True
            if not classAlreadyCalculated:
                numberOfWins = float(0)
                numberOfDraws = float(0)
                numberOfLose = float(0)
                numberOfRollouts = 10
                for i in range(numberOfRollouts):
                    new_cards = cards.gen_52_shuffled_cards()
                    removeComb(comb, new_cards)
                    opponents = []
                    for foo in range(n):
                        opponent = []
                        opponent.append(new_cards.pop())
                        opponent.append(new_cards.pop())
                        opponents.append(opponent)
                    table = []
                    for bar in range(5):
                        table.append(new_cards.pop())
                    outcome = calculateOutcome(comb, table, opponents)
                    if outcome == -1:
                        numberOfLose += 1
                    elif outcome == 0:
                        numberOfDraws += 1
                    else:
                        numberOfWins += 1
                    actual_strength = (numberOfWins /
                                       (float(numberOfRollouts)))
                    if comb[0][1] != comb[1][1]:
                        pre_flop_table[comb[0][0] -
                                       2][comb[1][0] -
                                          2][0][n - 1] = actual_strength
                    else:
                        pre_flop_table[comb[0][0] -
                                       2][comb[1][0] -
                                          2][1][n - 1] = actual_strength
Ejemplo n.º 2
0
def NewRound():
    # Henter en ny kortstokk og starter en ny runde
    #velger ny big blind og small blind
    global bigBlind,smallBlind,players,remainingPlayers, deck, tableCards,pot,done

    pot = 0
    done = False
    bigBlind = players[1]
    smallBlind = players[0]
    tableCards = []
    deck = cards.gen_52_shuffled_cards()
    remainingPlayers = deque(players)
    # Trekker kort til alle spillerene
    for p in players:
        p.playing = True
        p.cards = DrawCards(2)
        preBetInfo()
	# Forste runde med vedding
    preBetInfo
    InitialBet()
    if(not done):
        # Trekker flop-kort
       tableCards = DrawCards(3)
       preBetInfo()
       #print "TABLE CARDS: ", tableCards
       # Ny runde med vedding
       FlopBet()
       if(not done):
            # Trekker turn-kort
            flop = list(DrawCards(1))
            tableCards.append(flop[0])
            #print "TABLE CARDS: ", tableCards
            # Ny runde med vedding
            preBetInfo()
            TurnBet()
            # Trekker river-kort
            river = DrawCards(1)
            tableCards.append(river[0])
            #print "TABLE CARDS: ", tableCards
            # Siste runde med vedding
            preBetInfo()
            RiverBet()
            if(not done):
                # Showdown
                preBetInfo()
                Showdown()
                players.rotate(1)
Ejemplo n.º 3
0
def calculateProbabilities(allHoleCombinations, pre_flop_table):
    for n in range(1, 10):  # For 1 til 9 motstandere
        for comb in allHoleCombinations:  # For alle kombinasjoner av hullkort
            comb = list(comb)
            sorter(comb)
            classAlreadyCalculated = False
            # Her sjekkes det om det allerede er regnet ut sansynligheten for aa vinne for denne ekvivalensklassen
            if comb[0][1] == comb[1][1]:
                if pre_flop_table[comb[0][0] - 2][comb[1][0] - 2][1][n - 1] != -1:
                    classAlreadyCalculated = True
            elif pre_flop_table[comb[0][0] - 2][comb[1][0] - 2][0][n - 1] != -1:
                classAlreadyCalculated = True
            if not classAlreadyCalculated:
                numberOfWins = float(0)
                numberOfDraws = float(0)
                numberOfLose = float(0)
                numberOfRollouts = 10
                for i in range(numberOfRollouts):
                    new_cards = cards.gen_52_shuffled_cards()
                    removeComb(comb, new_cards)
                    opponents = []
                    for foo in range(n):
                        opponent = []
                        opponent.append(new_cards.pop())
                        opponent.append(new_cards.pop())
                        opponents.append(opponent)
                    table = []
                    for bar in range(5):
                        table.append(new_cards.pop())
                    outcome = calculateOutcome(comb, table, opponents)
                    if outcome == -1:
                        numberOfLose += 1
                    elif outcome == 0:
                        numberOfDraws += 1
                    else:
                        numberOfWins += 1
                    actual_strength = numberOfWins / (float(numberOfRollouts))
                    if comb[0][1] != comb[1][1]:
                        pre_flop_table[comb[0][0] - 2][comb[1][0] - 2][0][n - 1] = actual_strength
                    else:
                        pre_flop_table[comb[0][0] - 2][comb[1][0] - 2][1][n - 1] = actual_strength