def eval_trick_winner(self): trumps = [] for card in self.playedCards: if Card.get_suit_int(card) == self.trumps: trumps.append(card) trumps.sort(reverse=True) if len(trumps) > 0: bestCard = trumps[0] else: leadSuits = [] for card in self.playedCards: if Card.get_suit_int(card) == self.leadSuit: leadSuits.append(card) leadSuits.sort(reverse=True) bestCard = leadSuits[0] winnerIndex = self.playedCards.index(bestCard) winner = self.playerOrder[winnerIndex] winner.trickCount += 1 print('\n', winner.name, ' wins the trick with ', Card.print_pretty_card(bestCard)) self.leadPlayer = winner self.playedCards = []
def __init__(self, strategy=None, desiredCards=None): self.strategy = strategy self.desiredCards = ([ Card.print_pretty_card(Card.new(card)) if len(card) > 1 else card for card in desiredCards ] if desiredCards else None) self.POKER_HAND_EVALUATOR = Evaluator()
def play_card(self): valids = self.game.available_moves(self) print('\n Which card do you want to play? Choose a number 1 -', len(list(valids))) for i in range(len(valids)): print(i + 1, ' : ', Card.print_pretty_card(valids[i])) a = int(input()) c = valids[a - 1] game.playedCards.append(c) self.cards.remove(c)
def play_round(self): self.deck.shuffle() self.trumpCard = self.deck.draw() self.update_trumps() self.deal_cards() for player in game.playerList: player.cards.sort(reverse=True) print('\n The trump card is ', Card.print_pretty_card(self.trumpCard)) print( '\n Your cards are: ', Card.print_pretty_cards( self.playerList[self.playerList.index(p1)].cards)) for player in self.playerList: player.makeClaim() for player in self.playerList: print('\n', player.name, ' claims ', player.claim, ' tricks.') for i in range(self.n): for player in self.playerOrder: player.play_card() self.update_lead_suit() if self.playedCards == []: pass elif len(self.playedCards) > 1: print('\n', Card.print_pretty_cards(self.playedCards)) else: print('\n', Card.print_pretty_card(self.playedCards[0])) self.eval_trick_winner() self.update_player_order() for player in self.playerList: player.score_player() print('\n After the round of ', self.n, ' cards, the scores are:') for player in self.playerList: print(player.name, ' : ', player.score)
def simulatePokerGeneral(self): playerCards, communityCards, deck = [], [], Deck() while len(playerCards) != 5 or len(communityCards) < 5: card = deck.draw(1) if len(playerCards) != 5: stringCardDrawn = Card.print_pretty_card(card) if self.isTypeOfCard(stringCardDrawn): playerCards.append(card) else: communityCards.append(card) return playerCards, communityCards
def place_new_card(self, card, board): free_streets = board.get_free_street_indices() if len(free_streets) == 0: return -1 print ('Current card:'), print(Card.print_pretty_card(Card.new(card))) print("Available streets:") for street in free_streets: print ('%s: %s' % (street, street_to_row[street])) print ("%s, please enter the street (number) to play your card." % (self.name)) street = int(input()) while street not in free_streets: print("Please enter a valid street: " + str(free_streets)) street = int(input()) print('') return street
print("Привет, я тут засел в техасский дро покер. Поможешь мне?\n" "Я даю тебе шесть рук, а ты мне говоришь номер сильнейшей.\n" "На все про все даю тебе 60 секунд. По рукам?") while total_rounds_won < ROUNDS: deck = Deck() deck.shuffle() hands = {} for hand_num in range(6): hand = deck.draw(5) print( "Рука игрока {}:".format(hand_num + 1), " ".join( Card.print_pretty_card(card).replace("[", "").replace("]", "") for card in hand)) score = evaluator.evaluate(board, hand) hands[score] = hand_num + 1 answer = hands[min(hands)] user_inp = input("Номер выигрывающей руки: ") try: if int(user_inp) == answer: print("Отлично, следующий раунд!" if total_rounds_won + 2 < ROUNDS else "Ура! Я выиграл эту партию!") total_rounds_won += 1 else: print(random.choice(funny_answers)) break
winners = ranks == np.min(ranks) # If I won, increment number of victories if winners[0]: victories += 1 / winners.sum() return victories / self.n_evaluations if __name__ == '__main__': deck = Deck() equity = Equity(1000) card1, card2, card3, card4 = deck.draw(4) dead = [card1, card2, card3, card4] cards = [[card1, card2], [card3, card4]] board = [] import time start = time.time() equities = equity._get_equities_python(cards, board, deck.cards) print(Card.print_pretty_card(card1), Card.print_pretty_card(card2), 'VS', Card.print_pretty_card(card3), Card.print_pretty_card(card4)) print(equities) print('Python takes %ss' % (time.time() - start, )) start = time.time() equities = equity._get_equities_c(cards, board, dead) print(Card.print_pretty_card(card1), Card.print_pretty_card(card2), 'VS', Card.print_pretty_card(card3), Card.print_pretty_card(card4)) print(equities) print('C takes %ss' % (time.time() - start, ))