summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcameltris.py127
-rw-r--r--pycameltris/piece.py128
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)