Stash.get_winner fix
This commit is contained in:
@@ -220,18 +220,18 @@ class Stash():
|
||||
def get_winner(self) -> int:
|
||||
if not self.is_completed():
|
||||
raise BridzikException('Nie je mozne urcit vitaza, kopka nie je dohrana.')
|
||||
winner = None
|
||||
winner = self.first_player
|
||||
winning_card = self.get_first_card()
|
||||
for player_number in range(4):
|
||||
if self._cards[player_number].color == self.get_first_card().color \
|
||||
or self._cards[player_number].color == Card_colors['HEARTS']:
|
||||
if self._cards[player_number].color == winning_card.color \
|
||||
and self._cards[player_number].value >= winning_card.value:
|
||||
winning_card = self._cards[player_number]
|
||||
winner = player_number
|
||||
if self._cards[player_number].color == winning_card.color:
|
||||
if self._cards[player_number].value >= winning_card.value:
|
||||
winning_card = self._cards[player_number]
|
||||
winner = player_number
|
||||
elif self._cards[player_number].color == Card_colors['HEARTS']:
|
||||
winning_card = self._cards[player_number]
|
||||
winner = player_number
|
||||
winning_card = self._cards[player_number]
|
||||
winner = player_number
|
||||
return winner
|
||||
|
||||
def get_active_player(self) -> int:
|
||||
|
||||
@@ -65,11 +65,11 @@ class StashCase(unittest.TestCase):
|
||||
|
||||
# highest heart takes the stash
|
||||
heart_upper = Card(Card_colors['HEARTS'], Card_values['UPPER'])
|
||||
c4 = [leaves_8, leaves_lower, heart_7, heart_upper]
|
||||
c4 = [leaves_8, leaves_lower, heart_upper, heart_7]
|
||||
s4 = Stash(0)
|
||||
for i in range(4):
|
||||
s4.add_card(i, c4[i])
|
||||
self.assertEqual(s4.get_winner(), 3)
|
||||
self.assertEqual(s4.get_winner(), 2)
|
||||
|
||||
# test exceptions
|
||||
s5 = Stash(3)
|
||||
|
||||
Reference in New Issue
Block a user