diff --git a/src/game/screens/tetris.py b/src/game/screens/tetris.py index aed3cf1..ff06a2a 100644 --- a/src/game/screens/tetris.py +++ b/src/game/screens/tetris.py @@ -161,15 +161,18 @@ class Tetris(BaseScreen): """ return self.tetromino.drop() - def create_new_tetromino(self, shape: Optional[Figure] = None) -> Tetromino: + def create_new_tetromino( + self, shape: Optional[Figure] = None + ) -> Optional[Tetromino]: """Create a new tetromino and perform necessary actions.""" self._play_landing_sound() self._check_finished_rows() - self.phantom_tetromino.kill() + self.phantom_sprites.empty() self.game_over: bool = self._check_game_over() if self.game_over: self.restart() + return None self.tetromino = Tetromino( self.sprites, @@ -186,6 +189,7 @@ class Tetris(BaseScreen): True, ) self.phantom_tetromino.drop() + logger.debug(f"Created: {self.tetromino.figure.name}") return self.tetromino @@ -204,10 +208,8 @@ class Tetris(BaseScreen): def restart(self) -> None: """Restart the game.""" - logger.info("Restarting the game") + logger.info(f"Restarting the game. Score was {self.score}") self._reset_game_state() - self._initialize_field_and_tetromino() - self.game_over = False def mute(self) -> None: """Mute the game.""" @@ -348,6 +350,8 @@ class Tetris(BaseScreen): self.tetromino.figure, True, ) + + logger.debug(f"Created: {self.tetromino.figure.name}") self.phantom_tetromino.drop() def _initialize_timers(self) -> None: diff --git a/src/game/sprites/tetromino.py b/src/game/sprites/tetromino.py index ff82bda..0c0ca6a 100644 --- a/src/game/sprites/tetromino.py +++ b/src/game/sprites/tetromino.py @@ -29,7 +29,7 @@ class Tetromino: def __init__( self, group: pygame.sprite.Group, - create_new: Optional[Callable[[Optional[Figure]], "Tetromino"]], + create_new: Optional[Callable[[Optional[Figure]], Optional["Tetromino"]]], field: np.ndarray[Optional[Block], Any], shape: Optional[Figure] = None, phantom: bool = False,