rename field to tile, add mine attr, adjust factory to new attr

This commit is contained in:
matixezor 2021-03-30 18:49:11 +02:00
parent cc79adb81a
commit d6caa9aad9
4 changed files with 28 additions and 18 deletions

View File

@ -1,4 +0,0 @@
class Field:
def __init__(self, number: int, is_mined: bool):
self.number = number
self.is_mined = is_mined

View File

@ -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)]

10
src/tile.py Normal file
View File

@ -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

18
src/tilesFactory.py Normal file
View File

@ -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)]