push
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user