diff --git a/tetris.py b/tetris.py index 539fffe..27af49a 100755 --- a/tetris.py +++ b/tetris.py @@ -171,17 +171,24 @@ class Game: def new_game(self): - border_width = 3 - block_dims = 20, 20 - padding = 10 - - self.board = Board((padding, padding), (10, 20), border_width, block_dims) - self.board_prev = Board((self.board.grid_rect.right+padding, padding), (4, 4), border_width, block_dims) + self.reset_board() self.tetrad = Tetrad.random() self.tetrad_next = Tetrad.random() self.counter = 0 + def end_game(self): + self.reset_board() + + + def reset_board(self): + border_width = 3 + block_dims = 20, 20 + padding = 10 + self.board = Board((padding, padding), (10, 20), border_width, block_dims) + self.board_prev = Board((self.board.grid_rect.right+padding, padding), (4, 4), border_width, block_dims) + + def render(self, surface): self.board.render(surface, self.tetrad) self.board_prev.render(surface, self.tetrad_next) @@ -201,6 +208,21 @@ class Game: return False + def lower_tetrad(self): + self.counter = 0 + if self.try_placement(self.tetrad.moved_down()): + return + + self.board.place_tetrad(self.tetrad) + self.board.settle() + + self.tetrad = self.tetrad_next + self.tetrad_next = Tetrad.random() + + if not self.try_placement(self.tetrad): + self.end_game() + + def input_left(self): self.try_placement(self.tetrad.moved_left()) @@ -210,12 +232,7 @@ class Game: def input_down(self): - self.counter = 0 - if not self.try_placement(self.tetrad.moved_down()): - self.board.place_tetrad(self.tetrad) - self.board.settle() - self.tetrad = self.tetrad_next - self.tetrad_next = Tetrad.random() + self.lower_tetrad() def input_up(self):