Пример #1
0
    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 = []
Пример #2
0
 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()
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
    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
Пример #6
0
    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
Пример #7
0
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
Пример #8
0
            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, ))