def test_bigger_trump_wins(self): from Environment.Card import Card, is_new_winner old = Card("Red", 13) new = Card("Red", 12) trump = Card("Red", 1) first = Card("Red", 2) self.assertFalse(is_new_winner(new, old, trump, first)) self.assertTrue(is_new_winner(old, new, trump, first))
def test_Z_win_trump(self): from Environment.Card import Card, is_new_winner old = Card("White", 14) new = Card("Red", 13) trump = Card("Red", 1) first = Card("Red", 2) self.assertFalse(is_new_winner(new, old, trump, first)) self.assertTrue(is_new_winner(old, new, trump, first))
def test_first_color_wins(self): from Environment.Card import Card, is_new_winner old = Card("Red", 13) new = Card("Red", 12) invalid = Card("Green", 13) trump = Card("White", 0) first = Card("Red", 2) self.assertFalse(is_new_winner(new, old, trump, first)) self.assertTrue(is_new_winner(old, new, trump, first)) self.assertFalse(is_new_winner(invalid, old, trump, first))
def test_double_Z(self): from Environment.Card import Card, is_new_winner old = Card("White", 14) new = Card("White", 14) trump = Card("White", 0) first = Card("White", 0) self.assertFalse(is_new_winner(new, old, trump, first))
def play(self): winner = None num_players = len(self.players) trick_cards = [] for i in range(num_players): player_index = (self.first_player + i) % num_players # Start with the first player and ascend, then reset at 0. player = self.players[player_index] played_card = player.play_card(self.trump_card, self.first_card, trick_cards, self.players, self.played_cards_in_game) trick_cards.append(played_card) if self.first_card is None and played_card.value != 0: self.first_card = played_card if winner is None or is_new_winner( played_card, winner[0], self.trump_card, self.first_card): winner = (played_card, player_index) """self.logger.info("First card: {}\nTrump card: {}\nWinning: {}".format(self.first_card, self.trump_card, winner))""" return winner[1], trick_cards