From a294ba4e90b7c601a1e9dc8732c7980aed7ce7db Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Thu, 4 Jan 2024 06:34:29 +0200 Subject: [PATCH] feat(game): add game over and restart methods --- src/game/game.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/game/game.py b/src/game/game.py index acfd15d..4bb6d09 100644 --- a/src/game/game.py +++ b/src/game/game.py @@ -110,6 +110,9 @@ class Game: self.tetromino.move_horizontal(Direction.RIGHT) def create_new_tetromino(self) -> None: + if self.game_over(): + self.restart() + self._check_finished_rows() self.tetromino = Tetromino( self.sprites, @@ -118,6 +121,26 @@ class Game: self.get_next_shape(), ) + def game_over(self) -> bool: + for block in self.sprites: + if block.pos.y < 0: + log.info("Game over!") + return True + + def restart(self) -> None: + self.sprites.empty() + self.field = self._generate_empty_field() + self.tetromino = Tetromino( + self.sprites, + self.create_new_tetromino, + self.field, + self.get_next_shape(), + ) + self.level = 1 + self.score = 0 + self.lines = 0 + self.update_score(self.lines, self.score, self.level) + def _create_grid_surface(self) -> None: self.grid_surface = self.surface.copy() self.grid_surface.fill("#00ff00")