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
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)
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