From f5be3c1ad58992297692f6eea075f826f497e9c9 Mon Sep 17 00:00:00 2001 From: adrienmalin <41926238+adrienmalin@users.noreply.github.com> Date: Sun, 29 Sep 2019 12:05:07 +0200 Subject: [PATCH] use property for score --- tetrislogic.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/tetrislogic.py b/tetrislogic.py index d5d819c..5d0119c 100644 --- a/tetrislogic.py +++ b/tetrislogic.py @@ -117,6 +117,12 @@ class Tetromino: def ghost(self): return self.__class__() + def minoes_absolute_coord(self): + return [ + mino_coord + self.coord + for mino_coord in self.minoes_coords + ] + class O(AbstractTetromino, metaclass=MetaTetromino): @@ -203,6 +209,17 @@ class TetrisLogic(): self.time = 0 self.autorepeatable_actions = (self.move_left, self.move_right, self.soft_drop) self.pressed_actions = [] + self._score = 0 + + @property + def score(self): + return self._score + + @score.setter + def score(self, new_score): + self._score = new_score + if self._score > self.high_score: + self.high_score = self._score def new_game(self): self.level = 0 @@ -275,14 +292,14 @@ class TetrisLogic(): def soft_drop(self): if self.move(Movement.DOWN): - self.add_to_score(1) + self.score += 1 return True else: return False def hard_drop(self): while self.move(Movement.DOWN, prelock=False): - self.add_to_score(2) + self.score += 2 self.lock() def fall(self): @@ -417,7 +434,7 @@ class TetrisLogic(): lock_score += ds self.show_text("COMBO x{:n}\n{:n}".format(self.combo, ds)) - self.add_to_score(lock_score) + self.score += lock_score if self.goal <= 0: self.new_level() @@ -430,7 +447,6 @@ class TetrisLogic(): if coord.y <= NB_LINES+3: self.matrix[coord.y][coord.x] = self.current_piece.MINOES_COLOR - def append_new_line_to_matrix(self): self.matrix.append([None for x in range(NB_COLS)]) @@ -463,11 +479,6 @@ class TetrisLogic(): ] return not self.cell_is_free(t_slot_coord) - def add_to_score(self, delta_score): - self.score += delta_score - if self.score > self.high_score: - self.high_score = self.score - def swap(self): if self.current_piece.hold_enabled: self.current_piece.hold_enabled = False @@ -548,6 +559,7 @@ High score is set to 0""" ) def save_high_score(self): + print("High score: {:n}".format(self.high_score)) raise Warning( """TetrisLogic.save_high_score not implemented. High score is not saved"""