Tetrominoes out of class

This commit is contained in:
adrienmalin 2019-10-01 00:23:54 +02:00
parent afcb919018
commit 759c6f2054

View File

@ -10,16 +10,23 @@ class Mino:
self.coord = coord
class Tetromino:
random_bag = []
class MetaTetromino(type):
def __init__(cls, name, bases, dico):
super().__init__(name, bases, dico)
cls.classes.append(cls)
def __init__(cls, name, bases, dct):
super().__init__(name, bases, dct)
Tetromino.shapes.append(cls)
class Tetromino:
shapes = []
random_bag = []
def __new__(cls):
if not cls.random_bag:
cls.random_bag = list(cls.shapes)
random.shuffle(cls.random_bag)
return cls.random_bag.pop()()
class AbstractTetromino(list):
@ -39,7 +46,6 @@ class Tetromino:
(Coord(0, 0), Coord(-1, 0), Coord(-1, -1), Coord(0, 2), Coord(-1, 2)),
),
}
classes = []
def __init__(self):
super().__init__(
@ -115,10 +121,3 @@ class Tetromino:
MINOES_COORDS = (Coord(-1, 1), Coord(0, 1), Coord(0, 0), Coord(1, 0))
MINOES_COLOR = "red"
def __new__(cls):
if not cls.random_bag:
cls.random_bag = list(Tetromino.AbstractTetromino.classes)
random.shuffle(cls.random_bag)
return cls.random_bag.pop()()