diff --git a/src/field.py b/src/field.py deleted file mode 100644 index fc60872..0000000 --- a/src/field.py +++ /dev/null @@ -1,4 +0,0 @@ -class Field: - def __init__(self, number: int, is_mined: bool): - self.number = number - self.is_mined = is_mined diff --git a/src/fieldsFactory.py b/src/fieldsFactory.py deleted file mode 100644 index dd9242b..0000000 --- a/src/fieldsFactory.py +++ /dev/null @@ -1,14 +0,0 @@ -from typing import List - -from field import Field - - -class FieldsFactory: - def create_field(self, number: int) -> Field: - if number > 3: - return Field(number, True) - else: - return Field(number, False) - - def get_fields_list(self) -> List[Field]: - return [self.create_field(i) for i in range(11)] diff --git a/src/tile.py b/src/tile.py new file mode 100644 index 0000000..075a468 --- /dev/null +++ b/src/tile.py @@ -0,0 +1,10 @@ +from typing import Union + +from ap_mine import APMine +from at_mine import ATMine + + +class Tile: + def __init__(self, number: int, mine: Union[None, APMine, ATMine] = None): + self.number = number + self.mine = mine diff --git a/src/tilesFactory.py b/src/tilesFactory.py new file mode 100644 index 0000000..d995653 --- /dev/null +++ b/src/tilesFactory.py @@ -0,0 +1,18 @@ +from typing import List +from importlib import import_module + +from tile import Tile +from const import IMAGES + + +class TilesFactory: + def create_tile(self, number: int) -> Tile: + img = IMAGES[number] + if img.mine_type: + module = import_module(f'{img.mine_type.lower()}_mine') + return Tile(number, getattr(module, f'{img.mine_type}Mine')) + else: + return Tile(number, None) + + def get_tiles_list(self) -> List[Tile]: + return [self.create_tile(i) for i in range(11)]