Round.get_winner_summary added
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user