Exemple #1
0
    def betRequest(self, game_state):
        bet = 0
        all_my_money = 0

        try:
            myself = game_state["players"][game_state["in_action"]]
            cards_hand = myself["hole_cards"]
            cards_desk = game_state["community_cards"]
            cards_all = cards_hand + cards_desk
            all_my_money = int(myself["stack"])

            ranking_service_all_cards = Ranking(cards_all)
            ranking_service_hand = Ranking(cards_hand)

            #ranking = Ranking(cards_hand)
            chen_ranking = ranking_service_all_cards.get_chen_ranking()
            ranking = ranking_service_all_cards.getRanking()

            is_preflop = len(game_state["community_cards"]) == 0
            active_player_count = len(
                filter(lambda player: player["status"] == "active",
                       game_state["players"]))

            all_in_value = myself["stack"]
            minimum_raise = int(game_state["minimum_raise"])
            small_blind = int(game_state["small_blind"])

            if is_preflop:
                if active_player_count == 2:
                    if chen_ranking >= 4.5:
                        bet = all_in_value
                elif active_player_count == 3:
                    if chen_ranking >= 5.5:
                        bet = all_in_value
                elif active_player_count == 4:
                    if chen_ranking >= 6:
                        bet = all_in_value

                if bet != all_in_value:
                    did_somebody_raise = minimum_raise >= small_blind * 2

                    if not did_somebody_raise:
                        bet = minimum_raise * 2

                if minimum_raise > small_blind * 8 and chen_ranking >= 7.5:
                    bet = all_in_value

            else:
                TWO_PAIRS = 2
                if ranking == 0:
                    bet = 0
                elif ranking == 1:
                    bet = 2 * small_blind
                    # desk_card_values = [c for c in cards_desk]
                    # largest_desk_card_value = m
                elif ranking >= TWO_PAIRS:
                    bet = all_in_value
                #out_player_count =
                #bet = max(100, int(game_state["minimum_raise"]))
        except:
            print "Meghaltam :("

        return int(min(bet, all_my_money))
    def testRanking(self):
        # r=Player()
        # r.get
        cards = [{
            "rank": "6",
            "suit": "hearts"
        }, {
            "rank": "K",
            "suit": "spades"
        }, {
            "rank": "A",
            "suit": "spades"
        }, {
            "rank": "Q",
            "suit": "hearts"
        }, {
            "rank": "6",
            "suit": "clubs"
        }]
        r = Ranking(cards)
        self.assertEqual(1, r.getRanking())

        cards = [{
            "rank": "6",
            "suit": "hearts"
        }, {
            "rank": "K",
            "suit": "spades"
        }, {
            "rank": "A",
            "suit": "spades"
        }, {
            "rank": "A",
            "suit": "hearts"
        }, {
            "rank": "6",
            "suit": "clubs"
        }]
        r = Ranking(cards)
        self.assertEqual(2, r.getRanking())

        cards = [{
            "rank": "6",
            "suit": "hearts"
        }, {
            "rank": "K",
            "suit": "spades"
        }, {
            "rank": "6",
            "suit": "spades"
        }, {
            "rank": "A",
            "suit": "hearts"
        }, {
            "rank": "6",
            "suit": "clubs"
        }]
        r = Ranking(cards)
        self.assertEqual(3, r.getRanking())

        cards = [{
            "rank": "10",
            "suit": "spades"
        }, {
            "rank": "8",
            "suit": "diamonds"
        }, {
            "rank": "J",
            "suit": "hearts"
        }, {
            "rank": "9",
            "suit": "spades"
        }, {
            "rank": "Q",
            "suit": "clubs"
        }]
        r = Ranking(cards)
        self.assertEqual(4, r.getRanking())

        cards = [{
            "rank": "5",
            "suit": "diamonds"
        }, {
            "rank": "2",
            "suit": "diamonds"
        }, {
            "rank": "7",
            "suit": "diamonds"
        }, {
            "rank": "8",
            "suit": "clubs"
        }, {
            "rank": "8",
            "suit": "diamonds"
        }, {
            "rank": "J",
            "suit": "diamonds"
        }]
        r = Ranking(cards)
        self.assertEqual(5, r.getRanking())

        cards = [{
            "rank": "6",
            "suit": "hearts"
        }, {
            "rank": "A",
            "suit": "spades"
        }, {
            "rank": "6",
            "suit": "spades"
        }, {
            "rank": "A",
            "suit": "hearts"
        }, {
            "rank": "6",
            "suit": "clubs"
        }]
        r = Ranking(cards)
        self.assertEqual(6, r.getRanking())

        cards = [{
            "rank": "A",
            "suit": "diamonds"
        }, {
            "rank": "A",
            "suit": "spades"
        }, {
            "rank": "6",
            "suit": "spades"
        }, {
            "rank": "A",
            "suit": "hearts"
        }, {
            "rank": "A",
            "suit": "clubs"
        }]
        r = Ranking(cards)
        self.assertEqual(7, r.getRanking())

        cards = [{
            "rank": "8",
            "suit": "spades"
        }, {
            "rank": "J",
            "suit": "spades"
        }, {
            "rank": "Q",
            "suit": "spades"
        }, {
            "rank": "10",
            "suit": "spades"
        }, {
            "rank": "9",
            "suit": "spades"
        }]
        r = Ranking(cards)
        self.assertEqual(8, r.getRanking())