refactor: add base class for all game objects

This commit is contained in:
2021-06-08 12:33:58 -04:00
parent a269a532a0
commit 673c4774f2
7 changed files with 61 additions and 23 deletions

View File

@@ -8,6 +8,6 @@ class ConfigurationManager:
configuration = []
@classmethod
def load(cls):
def load(cls) -> None:
with open(CONFIG_FILE_LOCATION, "r") as yaml_file:
cls.configuration = yaml.safe_load(yaml_file)

View File

@@ -1,3 +1,4 @@
from typing import Tuple
import random
from entity.Piece import Piece
@@ -11,20 +12,20 @@ class PieceGenerator:
__bucket = []
@classmethod
def get_piece(cls, position):
def get_piece(cls, position: Tuple) -> Piece:
if len(cls.__bucket) == 0:
cls.__generate_bucket()
return Piece(cls.__get_piece_shape(cls.__bucket.pop()), position, cls.__get_piece_color())
@classmethod
def __generate_bucket(cls):
def __generate_bucket(cls) -> None:
piece_types = list(range(7))
while len(cls.__bucket) != 7:
random_number = random.randint(0, 6 - len(cls.__bucket))
cls.__bucket.append(piece_types.pop(random_number))
def __get_piece_shape(piece_number):
def __get_piece_shape(piece_number: int) -> Tuple:
if piece_number == 0:
return Piece.I_SHAPE
if piece_number == 1:
@@ -42,6 +43,6 @@ class PieceGenerator:
return None
def __get_piece_color():
def __get_piece_color() -> str:
random_number = random.randint(1, 3)
return ConfigurationManager.configuration["color"]["base-" + str(random_number)]