diff --git a/plant.py b/plant.py new file mode 100644 index 0000000..5374c84 --- /dev/null +++ b/plant.py @@ -0,0 +1,60 @@ +from abc import abc, abstractmethod + +class Plant: + + #tworzymy jakas rosline co ma nazwe, id ID powiedzmy ze buraki będą miały 1, marchewki 2 itd. gleby powiedzmy tez damy 4 i beda mialy id 5-8 + def __init__(self, name, ID): + super().__init__() + self._soil = -1 #jak tworzymy rosline to nie bedzie ona miala gleby + self._name = name #to nazwa rosliny będzie np. burak1 + self._id = ID #id rosliny buraki bedą miały 1, i po tym inne obiekty beda rozpoznawac ten obiekt + + #to jest jakbysmy usuneli obiekt zabezpieczenie, zeby gleba pozniej była wolna + def __del__(self): + self.leave_soil() + + #to sie drukuje jak zapytamy o stworzony obiekt + def __str__(self): + return 'Plant: %s , Soil: %s , Status: %s' % (self._name, self._soil, self._collect()) + + #metoda abstrakcyjna, kazda roslina ma inny czas rosniecia wiec pass + @abstractmethod + def collect(self): + pass + + #nadajemy współrzędne roślince + def add_coordinates(self, x, y): + self._x = x + self._y = y + + #pobieramy współrzędne roślinki + def get_coordinates(self): + return self._x, self._y + + #pobieramy id roślinki + def get_id(self): + return self._id + + #dodajemy glebe + def add_soil(self, soil): + self._soil = soil + + #zwraca czy roslinka znajduje sie w ziemii obecnie - jak nie ma gleby to znaczy ze nie jest zasadzona jeszcze albo już. + def have_soil(self): + return self._soil is not -1 + + #pobieramy jaka ma glebe, gleba tutaj będzie obiektem + def get_soil(self): + return self._soil + + #to w przypadku jak bedziemy wyciagac z ziemii roslinke + def leave_soil(self): + if self.have_soil(): + a = self.get_soil() + a.plant.remove(self) #to bedzie metoda w klasie Soil, bedzie usuwac roslinke z gleby + self._soil = -1 + + + + +