mirror of
https://github.com/kristoferssolo/Tetris.git
synced 2025-10-21 20:00:35 +00:00
feat(game): add game over and restart methods
This commit is contained in:
parent
384a4d8d74
commit
a294ba4e90
@ -110,6 +110,9 @@ class Game:
|
|||||||
self.tetromino.move_horizontal(Direction.RIGHT)
|
self.tetromino.move_horizontal(Direction.RIGHT)
|
||||||
|
|
||||||
def create_new_tetromino(self) -> None:
|
def create_new_tetromino(self) -> None:
|
||||||
|
if self.game_over():
|
||||||
|
self.restart()
|
||||||
|
|
||||||
self._check_finished_rows()
|
self._check_finished_rows()
|
||||||
self.tetromino = Tetromino(
|
self.tetromino = Tetromino(
|
||||||
self.sprites,
|
self.sprites,
|
||||||
@ -118,6 +121,26 @@ class Game:
|
|||||||
self.get_next_shape(),
|
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:
|
def _create_grid_surface(self) -> None:
|
||||||
self.grid_surface = self.surface.copy()
|
self.grid_surface = self.surface.copy()
|
||||||
self.grid_surface.fill("#00ff00")
|
self.grid_surface.fill("#00ff00")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user