diff options
author | Olivier Gayot <olivier.gayot@sigexec.com> | 2021-02-26 19:55:00 +0100 |
---|---|---|
committer | Olivier Gayot <olivier.gayot@sigexec.com> | 2021-02-26 20:34:33 +0100 |
commit | fe1cb5d26a4c816cbe36eb6dd31807b06c192140 (patch) | |
tree | aff3b7cf0a590a7661b7668af798572b21bea4b7 | |
parent | aae1ac7872ceb93058d51ae7640b2ebf994c7856 (diff) |
Move piece-related stuff in a dedicated unit
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
-rwxr-xr-x | cameltris.py | 127 | ||||
-rw-r--r-- | pycameltris/piece.py | 128 |
2 files changed, 129 insertions, 126 deletions
diff --git a/cameltris.py b/cameltris.py index cf29a72..5d80cad 100755 --- a/cameltris.py +++ b/cameltris.py @@ -9,6 +9,7 @@ import sys import pygame from pycameltris.controller import KeyboardController, JoystickController, Input +from pycameltris.piece import * class WouldCollide(Exception): @@ -19,120 +20,6 @@ class PlayerQuit(Exception): pass -class Piece(): - def __init__(self): - self.square = square_template.copy() - - def rotate_clockwise(self): - self.elements = list(zip(*self.elements[::-1])) - - def rotate_counter_clockwise(self): - self.rotate_clockwise() - self.rotate_clockwise() - self.rotate_clockwise() - - -class ZPiece(Piece): - def __init__(self): - 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): - self.rotate() - - def rotate_counter_clockwise(self): - self.rotate() - - def rotate(self): - if self.vertical: - self.elements = (self.square, self.square, None), (None, self.square, self.square), (None, None, None) - else: - 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): - 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): - self.rotate() - - def rotate_counter_clockwise(self): - self.rotate() - - def rotate(self): - if self.vertical: - self.elements = (None, self.square, self.square), (self.square, self.square, None), (None, None, None) - else: - 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): - super().__init__() - - self.square.fill(brown) - self.elements = ((self.square, self.square), (self.square, self.square)) - - -class IPiece(Piece): - def __init__(self): - 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): - self.rotate() - - def rotate_counter_clockwise(self): - self.rotate() - - def rotate(self): - if self.vertical: - 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, 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): - super().__init__() - - self.square.fill(cyan) - self.elements = (None, None, None), (self.square, self.square, self.square), (None, None, self.square) - - -class JPiece(Piece): - def __init__(self): - super().__init__() - - self.square.fill(purple) - self.elements = (None, None, None), (self.square, self.square, self.square), (self.square, None, None) - - -class TPiece(Piece): - def __init__(self): - super().__init__() - - self.square.fill(yellow) - self.elements = (None, None, None), (self.square, self.square, self.square), (None, self.square, None) - - def refresh_right_pane_canvas(): for player in players: player.level_canvas.fill(black) @@ -379,18 +266,6 @@ print(ARGS) pygame.init() -black = (0, 0, 0) -white = (0xff, 0xff, 0xff) -brown = (163, 75, 31) -blue = (30, 34, 164) -green = (30, 164, 59) -red = (164, 30, 30) -purple = (126, 30, 164) -yellow = (164, 164, 30) -cyan = (30, 164, 150) - -square_template = pygame.Surface((48, 48)) - screen = pygame.display.set_mode((801, 1000)) right_pane_canvas = pygame.Surface((300, 1000)) diff --git a/pycameltris/piece.py b/pycameltris/piece.py new file mode 100644 index 0000000..aaeac66 --- /dev/null +++ b/pycameltris/piece.py @@ -0,0 +1,128 @@ +import pygame + + +square_template = pygame.Surface((48, 48)) + +black = (0, 0, 0) +white = (0xff, 0xff, 0xff) +brown = (163, 75, 31) +blue = (30, 34, 164) +green = (30, 164, 59) +red = (164, 30, 30) +purple = (126, 30, 164) +yellow = (164, 164, 30) +cyan = (30, 164, 150) + + +class Piece(): + def __init__(self): + self.square = square_template.copy() + + def rotate_clockwise(self): + self.elements = list(zip(*self.elements[::-1])) + + def rotate_counter_clockwise(self): + self.rotate_clockwise() + self.rotate_clockwise() + self.rotate_clockwise() + + +class ZPiece(Piece): + def __init__(self): + 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): + self.rotate() + + def rotate_counter_clockwise(self): + self.rotate() + + def rotate(self): + if self.vertical: + self.elements = (self.square, self.square, None), (None, self.square, self.square), (None, None, None) + else: + 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): + 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): + self.rotate() + + def rotate_counter_clockwise(self): + self.rotate() + + def rotate(self): + if self.vertical: + self.elements = (None, self.square, self.square), (self.square, self.square, None), (None, None, None) + else: + 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): + super().__init__() + + self.square.fill(brown) + self.elements = ((self.square, self.square), (self.square, self.square)) + + +class IPiece(Piece): + def __init__(self): + 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): + self.rotate() + + def rotate_counter_clockwise(self): + self.rotate() + + def rotate(self): + if self.vertical: + 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, 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): + super().__init__() + + self.square.fill(cyan) + self.elements = (None, None, None), (self.square, self.square, self.square), (None, None, self.square) + + +class JPiece(Piece): + def __init__(self): + super().__init__() + + self.square.fill(purple) + self.elements = (None, None, None), (self.square, self.square, self.square), (self.square, None, None) + + +class TPiece(Piece): + def __init__(self): + super().__init__() + + self.square.fill(yellow) + self.elements = (None, None, None), (self.square, self.square, self.square), (None, self.square, None) |