Esempio n. 1
0
    def test_checking_function_if_there_is_quinte_in_the_cards_should_return_list_of_quintes(
            self):
        team1 = Team('Malinka', (Person('Ivan'), Person('Gosho')))

        team1.teammates[0].cards = [
            Card('9', 'D'),
            Card('Q', 'D'),
            Card('K', 'D'),
            Card('T', 'D'),
            Card('Q', 'C'),
            Card('J', 'D'),
            Card('8', 'D'),
            Card('K', 'S'),
            Card('Q', 'S'),
            Card('A', 'H'),
            Card('7', 'D'),
            Card('J', 'H'),
            Card('8', 'C')
        ]

        sorted_list = Utls.sort_cards(team1.teammates[0].cards)

        quinte_list = Utls.check_if_there_is_quinte(sorted_list)

        self.assertEqual(quinte_list, ['Quinte', 'D', '13'])
Esempio n. 2
0
    def test_checking_if_there_is_carre_in_the_cards_should_return_list_of_carres(
            self):
        team1 = Team('Malinka', (Person('Ivan'), Person('Gosho')))

        team1.teammates[0].cards = [
            Card('9', 'C'),
            Card('9', 'D'),
            Card('9', 'H'),
            Card('9', 'S'),
            Card('7', 'S'),
            Card('7', 'D')
        ]

        sorted_list = Utls.sort_cards(team1.teammates[0].cards)

        carres_list = Utls.check_if_there_is_carre(sorted_list)

        self.assertEqual(carres_list, [['Carre', '9']])
Esempio n. 3
0
    def test_shuffle_function_should_return_shuffled_list_of_Card(self):
        cards = [
            Card(value, paint) for value in [val for val in '79TJQKA']
            for paint in [p for p in 'CDHS']
        ]

        shuffled_cards = Utls.shuffle()

        self.assertIsNotNone(shuffled_cards)
        self.assertNotEqual(cards, shuffled_cards)
Esempio n. 4
0
    def test_checking_for_belote_function_should_return_list_of_belotes(self):
        team1 = Team('Malinka', (Person('Ivan'), Person('Gosho')))

        team1.teammates[0].cards = [
            Card('9', 'D'),
            Card('Q', 'D'),
            Card('K', 'D'),
            Card('Q', 'C'),
            Card('K', 'S'),
            Card('Q', 'S'),
            Card('A', 'H'),
            Card('7', 'D'),
            Card('J', 'H'),
            Card('8', 'C')
        ]

        sorted_list = Utls.sort_cards(team1.teammates[0].cards)

        belote_list = Utls.check_if_there_is_belote(sorted_list)

        self.assertEqual(belote_list, [['Belote', 'D'], ['Belote', 'S']])
Esempio n. 5
0
    def test_draw_cards_function_should_draw_Cards_to_teammates(self):
        cards = Utls.shuffle()

        team1 = Team('Malinka', (Person('Ivan'), Person('Gosho')))
        team2 = Team('Yagodka', (Person('Pesho'), Person('Tosho')))

        Utls.draw_cards(team1, team2)

        first_teammate_team1_cards = cards[:8]
        first_teammate_team2_cards = cards[8:16]
        second_teammate_team1_cards = cards[16:24]
        second_teammate_team2_cards = cards[24:]

        self.assertEqual(len(team1.teammates[0].cards),
                         len(first_teammate_team1_cards))
        self.assertEqual(len(team2.teammates[0].cards),
                         len(first_teammate_team2_cards))
        self.assertEqual(len(team1.teammates[1].cards),
                         len(second_teammate_team1_cards))
        self.assertEqual(len(team2.teammates[1].cards),
                         len(second_teammate_team2_cards))
Esempio n. 6
0
    def test_sorting_cards_should_returns_sorted_list_of_cards(self):
        team1 = Team('Malinka', (Person('Ivan'), Person('Gosho')))

        team1.teammates[0].cards = [
            Card('9', 'D'),
            Card('J', 'C'),
            Card('K', 'S'),
            Card('Q', 'S'),
            Card('A', 'H'),
            Card('7', 'D'),
            Card('J', 'H'),
            Card('8', 'C')
        ]

        result = Utls.sort_cards(team1.teammates[0].cards)

        self.assertEqual(str(result),
                         '[8 ♣, 11 ♣, 7 ♦, 9 ♦, 11 ♥, 14 ♥, 12 ♠, 13 ♠]')
Esempio n. 7
0
    def play(self):

        while self.team1.wins < 2 and self.team2.wins < 2:
            while self.team1.points < 150 and self.team2.points < 150 or self.team1.points == self.team2.points:
                self.team1, self.team2 = Utls.draw_cards()
                contract = announce_contracts()
                for player in players_order:
                    pass

                players_order = rotate_players_order(players_order)

                self.json_history = self.add_to_json()
                self.jsoned = self.to_json()
                self.write_json()
                self.write_result()
                self.round += 1

            self.has_winner = True
            self.write_result()
            self.has_winner = False
            self.game += 1
            self.round = 0
Esempio n. 8
0
    def take_player_annoucements(player):
        annoucements = []

        carre_list = Utls.check_if_there_is_carre(player.cards)
        if len(carre_list) != 0:
            annoucements += carre_list
        quinte_list = Utls.check_if_there_is_quinte(player.cards)
        if len(quinte_list) != 0 and len(carre_list) == 0:
            annoucements.append(quinte_list)
        quarte_list = Utls.check_if_there_is_quarte(player.cards)
        if len(quinte_list) == 0 and len(carre_list) == 0:
            annoucements += quarte_list
        elif len(quinte_list) == 0 and len(carre_list) != 0:
            for i in range(len(quarte_list)):
                for j in range(len(carre_list)):
                    if (abs(int(quarte_list[i][2]) -
                            int(carre_list[j][1]))) > 4:
                        annoucements.append(quarte_list[i])
        tierce_list = Utls.check_if_there_is_tierce(player.cards)
        if (tierce_list) != 0:
            if len(quinte_list) == 0 and len(quarte_list) == 0 and len(
                    carre_list) == 0:
                annoucements += tierce_list
            elif len(quinte_list) == 0 and len(
                    quarte_list) == 0 and len(carre_list) != 0:
                for i in range(len(carre_list)):
                    for j in range(len(tierce_list)):
                        if (abs(
                                int(tierce_list[i][2]) -
                                int(carre_list[j][1]))) > 3:
                            annoucements.append(tierce_list[i])
            elif len(quinte_list) != 0 and len(quarte_list) == 0 and len(
                    carre_list) == 0:
                for i in range(len(quinte_list)):
                    for j in range(len(tierce_list)):
                        if quinte_list[i][1] != tierce_list[j][1]:
                            annoucements += tierce_list[j]
            elif len(quinte_list) != 0 and len(
                    quarte_list) == 0 and len(carre_list) != 0:
                for i in range(len(quinte_list)):
                    for j in range(len(tierce_list)):
                        for k in range(len(carre_list)):
                            if quinte_list[i][1] != tierce_list[j][1] and (abs(
                                    int(tierce_list[i][2]) -
                                    int(carre_list[k][1]))) > 3:
                                annoucements += tierce_list[j]
            elif len(quinte_list) == 0 and len(quarte_list) != 0 and len(
                    carre_list) == 0:
                for i in range(len(quarte_list)):
                    for j in range(len(tierce_list)):
                        if quarte_list[i][1] == tierce_list[j][1] and abs(
                                int(quarte_list[i][2]) -
                                int(tierce_list[j][2])) > 3:
                            annoucements.append(tierce_list[j])
            elif len(quinte_list
                     ) == 0 and len(quarte_list) != 0 and len(carre_list) != 0:
                for i in range(len(quarte_list)):
                    for j in range(len(tierce_list)):
                        for k in range(len(carre_list)):
                            if (quarte_list[i][1] == tierce_list[j][1]) and (
                                (abs(
                                    int(quarte_list[i][2]) -
                                    int(tierce_list[j][2]))) > 3) and ((abs(
                                        int(tierce_list[i][2]) -
                                        int(carre_list[k][1]))) > 3):
                                annoucements.append(tierce_list[j])

        belot_list = Utls.check_if_there_is_belote(player.cards)
        if len(belot_list) != 0:
            annoucements += belot_list

        return annoucements