def test():
    print("SETUP")
    house = House('house')
    house.add('a')
    house.add('b')
    house.add('c')
    house.add('d')
    house.add('e')
    house.add('f')
    house.add('g')
    house.add('h')
    house.add('i')
    house.add('j')
    print("CONNECTIONS")
    house.connect('a','b')
    house.connect('c','d')
    house.connect('a','e')
    house.connect('b','e')
    house.connect('a','c')
    house.connect('f','c')
    house.connect('g','d')
    house.connect('h','b')
    house.connect('i','c')
    house.connect('j','a')
    house.connect('j','h')
    print("CONNECTIONS COMPLETE")
    print("SETUP COMPLETE")
    traverse_house(house)
Esempio n. 2
0
class HouseBuilder(Builder):
    """Concrete builder that worh with the concrete object. Implements all abstract methods from Builder"""

    def __init__(self):
        self.reset()

    def reset(self) -> None:
        self.__house = House()
    
    def build_walls(self, value: int = 4) -> None:
        self.__house.add(f"Walls: {value}")

    def build_doors(self, value: int = 1) -> None:
        self.__house.add(f"Doors: {value}")

    def build_windows(self, value: int = 2) -> None:
        self.__house.add(f"Windows: {value}")

    def build_roof(self) -> None:
        self.__house.add("Roof: 1")

    def build_garage(self, value: int = 1) -> None:
        self.__house.add(f"Added {value} garage")

    def build_swimming_pool(self, value: int = 1) -> None:
        self.__house.add(f"Added {value} swimming pool")

    def build_garden(self, value: int = 1) -> None:
        self.__house.add(f"Added {value} garden")

    def build_fancy_statues(self) -> None:
        self.__house.add("Added fancy statues")

    @property
    def house(self) -> House:
        result = self.__house
        self.reset()
        return result