def game_over(self, screen, game: Game, scores: ScoresList) -> bool: score_saved = False # not saved yet self.sfx.game_over.play() # play audio i = 0 while True: # Fade-in game over screen if i < 256: pg.event.get() # dummy get self.drawer.draw_game(screen, game, 0) # draw game self.drawer.draw_game_over_overlay( screen, i, score_saved) # fade-in game over screen self.clock.tick(60) # slow-down the fade-in # Refresh screen pg.display.flip() i += 1 # Check for quit or restart events for event in pg.event.get(): if user_quit(event): return False elif event.type == pg.MOUSEBUTTONDOWN: if self.txt.restart_rect.collidepoint(*event.pos): return True elif not score_saved and \ self.txt.save_score_rect.collidepoint(*event.pos): for score in game.get_scores(): scores.add_score(score) scores.write() score_saved = True
class TestScore(unittest.TestCase): ''' Test case for score tallying ''' def setUp(self): self.black_stone = 'b' self.white_Stone = 'w' self.board_size = 7 configs = { 'black_stone': self.black_stone, 'white_stone': self.white_Stone, 'board_size': self.board_size, 'enable_self_destruct': False } self.game = Game(configs) def test__capture1(self): capture1(self.game) scores = self.game.get_scores() self.assertEqual(scores[Stone.BLACK], -1) self.assertEqual(scores[Stone.WHITE], 45) def test__capture2(self): capture2(self.game) scores = self.game.get_scores() self.assertEqual(scores[Stone.BLACK], -3) self.assertEqual(scores[Stone.WHITE], 42) def test__capture3(self): capture3(self.game) scores = self.game.get_scores() self.assertEqual(scores[Stone.BLACK], -1) self.assertEqual(scores[Stone.WHITE], 43) def test__neutral(self): capture2(self.game) self.game.place_black(1, 1) scores = self.game.get_scores() self.assertEqual(scores[Stone.BLACK], -3) self.assertEqual(scores[Stone.WHITE], 3)