From 07a494a40bfb4a81693da1f1cae4852a02e36169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Sender=C3=A1k?= Date: Sat, 28 Mar 2020 07:22:52 +0100 Subject: [PATCH] Round.get_winner_summary added --- game.py | 7 +++++++ tests.py | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/game.py b/game.py index f6aa875..8d0ca55 100644 --- a/game.py +++ b/game.py @@ -170,6 +170,13 @@ class Round(): def is_guessing_completed(self): return len(self.guesses) == 4 + def get_winner_summary(self) -> []: + summary = [0]*4 + for stash in self.stashes: + if stash.is_completed(): + summary[stash.get_winner()] += 1 + return summary + def get_last_stash(self): return self.stashes[-1] if self.stashes else None diff --git a/tests.py b/tests.py index 9f4f8ce..24a2946 100644 --- a/tests.py +++ b/tests.py @@ -275,6 +275,47 @@ class RoundCase(unittest.TestCase): r.stashes.append(Stash(2)) self.assertEqual(r.get_last_stash(), r.stashes[1]) + def test_get_winner_summary(self): + shuffler = lambda list: None + c0 = [ + Card(Card_colors['BELLS'], Card_values['UPPER']), + Card(Card_colors['HEARTS'], Card_values['UPPER']) + ] + c1 = [ + Card(Card_colors['BELLS'], Card_values['C7']), + Card(Card_colors['HEARTS'], Card_values['C10']) + ] + c2 = [ + Card(Card_colors['BELLS'], Card_values['ACE']), + Card(Card_colors['BELLS'], Card_values['C8']) + ] + c3 = [ + Card(Card_colors['LEAVES'], Card_values['C7']), + Card(Card_colors['BELLS'], Card_values['LOWER']) + ] + c = ['dummy']*24 + c0 + c1 + c2 + c3 + r = Round(6, 1, c, shuffler) + self.assertEqual(r.get_winner_summary(), [0]*4) + r.add_player_guess(1, 0) + r.add_player_guess(2, 0) + r.add_player_guess(3, 1) + r.add_player_guess(0, 2) + + r.play_card(0, c0[0]) + r.play_card(1, c1[0]) + r.play_card(2, c2[0]) + self.assertEqual(r.get_winner_summary(), [0]*4) + r.play_card(3, c3[1]) + self.assertEqual(r.get_winner_summary(), [0, 0, 1, 0]) + + r.play_card(2, c2[1]) + r.play_card(3, c3[0]) + r.play_card(0, c0[1]) + r.play_card(1, c1[1]) + self.assertEqual(r.get_winner_summary(), [1, 0, 1, 0]) + + + if __name__ == '__main__': unittest.main(verbosity=2)