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'])
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']])
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)
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']])
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))
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 ♠]')
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
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