class Plant: def __init__(self, name, height, color, bloom, Prize): self.name = name self.height = height self.color = color self.bloom = bloom self.Prize = Prize def grow(self, heigt: int = 1) -> None: self.height += heigt print(f"{self.name} grew {heigt}cm") class Garden: def __init__(self, owner: str): self.owner = owner self._plants: list[Plant] = [] self.score = 0 def add_plant(self, plant: Plant) -> None: self._plants.append(plant) print(f"Added {plant.name} to {self.owner}'s garden") def help_all_plants_grow(self) -> int: print(f"\n{self.owner} is helping all plants grow...") count = 0 for plant in self._plants: plant.grow(1) count += 1 return (count) def list_plants(self) -> None: print(f"\n=== {self.owner}'s Garden Report ===") print("Plants in garden:") for plant in self._plants: display = f"- {plant.name}: {plant.height}cm" if (plant.color != ""): display += f", {plant.color} flowers" if (plant.bloom == 1): display += " (blooming)" if (plant.Prize > 0): display += f", Prize point: {plant.Prize}" print(display) def list_update(self, height) -> None: regular = 0 flowering = 0 prize = 0 print(f"\nPlants added: {len(self._plants)}, Total growth: {height}cm") for plant in self._plants: if plant.bloom == 1: flowering += 1 if plant.Prize > 0: prize += 1 if (plant.Prize == 0) & (plant.bloom == 0): regular += 1 update = f"Plant types: {regular} regular, {flowering} flowering, " update += f"{prize} prize flowers\n" print(update) class GardenManager: def __init__(self): self._garden: list[Garden] = [] def add_garden(self, garden: Garden) -> None: self._garden.append(garden) def garden_list(self) -> None: result = "Garden scores" len = 0 totalheight = 0 for Garden in self._garden: for plant in Garden._plants: Garden.score += plant.height Garden.score += 10 if plant.bloom == 1: Garden.score += 10 totalheight += plant.height len += 1 result += f" - {Garden.owner}: {Garden.score}" if (totalheight >= 200): print("Height validation test: True") else: print("Height validation test: False") print(result) print(f"Total gardens managed: {len}") print("=== Garden Management System Demo ===\n") alice = Garden("Alice") alice.add_plant(Plant("Oak Tree", 100, "", 0, 0)) alice.add_plant(Plant("Rose", 25, "red", 1, 0)) alice.add_plant(Plant("Sunflower", 50, "yellow", 0, 10)) Bob = Garden("Bob") Bob.add_plant(Plant("Acacia Tree", 82, "", "", 0)) Manager = GardenManager() Manager.add_garden(alice) Manager.add_garden(Bob) original = 0 original += alice.help_all_plants_grow() alice.list_plants() alice.list_update(original) Manager.garden_list()