diff options
author | Olivier Gayot <olivier.gayot@sigexec.com> | 2020-12-22 19:22:43 +0100 |
---|---|---|
committer | Olivier Gayot <olivier.gayot@sigexec.com> | 2020-12-22 20:10:31 +0100 |
commit | 9d8db92ea74cccf4b9b3a595a8debe2bb99e667b (patch) | |
tree | af8c4f4bd1399403f43918ba3d46a084834300ec | |
parent | 4711bbcae96a1d9b27112577e06122f693dfff42 (diff) |
Inherit the colors
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
-rwxr-xr-x | cameltris.py | 65 |
1 files changed, 38 insertions, 27 deletions
diff --git a/cameltris.py b/cameltris.py index c97f7c7..f130408 100755 --- a/cameltris.py +++ b/cameltris.py @@ -13,6 +13,9 @@ class WouldCollide(Exception): class Piece(): + def __init__(self): + self.square = square_template.copy() + def rotate_clockwise(self): self.elements = list(zip(*self.elements[::-1])) @@ -24,7 +27,10 @@ class Piece(): class ZPiece(Piece): def __init__(self): - self.elements = (blue_square, blue_square, None), (None, blue_square, blue_square), (None, None, None) + super().__init__() + + self.square.fill(blue) + self.elements = (self.square, self.square, None), (None, self.square, self.square), (None, None, None) self.vertical = False def rotate_clockwise(self): @@ -35,16 +41,19 @@ class ZPiece(Piece): def rotate(self): if self.vertical: - self.elements = (blue_square, blue_square, None), (None, blue_square, blue_square), (None, None, None) + self.elements = (self.square, self.square, None), (None, self.square, self.square), (None, None, None) else: - self.elements = (None, None, blue_square), (None, blue_square, blue_square), (None, blue_square, None) + self.elements = (None, None, self.square), (None, self.square, self.square), (None, self.square, None) self.vertical = not self.vertical class SPiece(Piece): def __init__(self): - self.elements = (None, None, None), (None, green_square, green_square), (green_square, green_square, None) + super().__init__() + + self.square.fill(green) + self.elements = (None, None, None), (None, self.square, self.square), (self.square, self.square, None) self.vertical = False def rotate_clockwise(self): @@ -55,21 +64,27 @@ class SPiece(Piece): def rotate(self): if self.vertical: - self.elements = (None, green_square, green_square), (green_square, green_square, None), (None, None, None) + self.elements = (None, self.square, self.square), (self.square, self.square, None), (None, None, None) else: - self.elements = (None, green_square, None), (None, green_square, green_square), (None, None, green_square) + self.elements = (None, self.square, None), (None, self.square, self.square), (None, None, self.square) self.vertical = not self.vertical class SquarePiece(Piece): def __init__(self): - self.elements = ((white_square, white_square), (white_square, white_square)) + super().__init__() + + self.square.fill(white) + self.elements = ((self.square, self.square), (self.square, self.square)) class IPiece(Piece): def __init__(self): - self.elements = (None, None, None, None), (None, None, None, None), (red_square, red_square, red_square, red_square), (None, None, None, None) + super().__init__() + + self.square.fill(red) + self.elements = (None, None, None, None), (None, None, None, None), (self.square, self.square, self.square, self.square), (None, None, None, None) self.vertical = False def rotate_clockwise(self): @@ -80,26 +95,35 @@ class IPiece(Piece): def rotate(self): if self.vertical: - self.elements = (None, None, None, None), (None, None, None, None), (red_square, red_square, red_square, red_square), (None, None, None, None) + self.elements = (None, None, None, None), (None, None, None, None), (self.square, self.square, self.square, self.square), (None, None, None, None) else: - self.elements = (None, None, red_square, None), (None, None, red_square, None), (None, None, red_square, None), (None, None, red_square, None) + self.elements = (None, None, self.square, None), (None, None, self.square, None), (None, None, self.square, None), (None, None, self.square, None) self.vertical = not self.vertical class LPiece(Piece): def __init__(self): - self.elements = (None, None, None), (red_square, red_square, red_square), (None, None, red_square) + super().__init__() + + self.square.fill(blue) + self.elements = (None, None, None), (self.square, self.square, self.square), (None, None, self.square) class JPiece(Piece): def __init__(self): - self.elements = (None, None, None), (blue_square, blue_square, blue_square), (blue_square, None, None) + super().__init__() + + self.square.fill(red) + self.elements = (None, None, None), (self.square, self.square, self.square), (self.square, None, None) class TPiece(Piece): def __init__(self): - self.elements = [[yellow_square, yellow_square, yellow_square], [None, yellow_square, None], [None, None, None]] + super().__init__() + + self.square.fill(yellow) + self.elements = [[self.square, self.square, self.square], [None, self.square, None], [None, None, None]] def refresh_game_canvas(): @@ -255,20 +279,7 @@ green = (0x20, 0xbb, 0x10) red = (0xbb, 0x10, 0x20) yellow = (0xab, 0xd0, 0x20) -white_square = pygame.Surface((48, 48)) -white_square.fill(white) - -blue_square = pygame.Surface((48, 48)) -blue_square.fill(blue) - -green_square = pygame.Surface((48, 48)) -green_square.fill(green) - -red_square = pygame.Surface((48, 48)) -red_square.fill(red) - -yellow_square = pygame.Surface((48, 48)) -yellow_square.fill(yellow) +square_template = pygame.Surface((48, 48)) screen = pygame.display.set_mode((801, 1000)) |