Prześlij pliki do ''
dodanie klas soil i carrot
This commit is contained in:
parent
0e8a2a72ef
commit
b0154dc37e
34
carrot.py
Normal file
34
carrot.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
from plant import Plant
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
class Carrot(Plant):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self._wasFertilized = False #roslina nie byla nawozona przy tworzeniu
|
||||||
|
self._starttime = datetime.now()
|
||||||
|
|
||||||
|
def collect(self):
|
||||||
|
if self.have_soil():
|
||||||
|
self.__growing()
|
||||||
|
if self._collect < 90:
|
||||||
|
return 'False'
|
||||||
|
elif 90 <= self._collect <= 105:
|
||||||
|
return 'True'
|
||||||
|
elif self._collect > 105:
|
||||||
|
return 'Delete'
|
||||||
|
|
||||||
|
def fertillizing(self):
|
||||||
|
if 30 <= self._collect <= 50:
|
||||||
|
self._wasFertilized = True
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
#każde iles czasu zwieksza wzrost rosliny, wywolywana w momencie sprawdzania czy roslina jest gotowa do zbiorow
|
||||||
|
def __growing(self):
|
||||||
|
checktime = datetime.now()
|
||||||
|
delta = checktime - self._starttime
|
||||||
|
a = delta // 60
|
||||||
|
self._collect += a
|
||||||
|
self._starttime = checktime
|
125
plant.py
125
plant.py
@ -1,60 +1,65 @@
|
|||||||
from abc import abc, abstractmethod
|
from abc import abc, abstractmethod
|
||||||
|
|
||||||
class Plant:
|
class Plant:
|
||||||
|
|
||||||
#tworzymy jakas rosline co ma nazwe,i id. ID powiedzmy ze buraki będą miały 1, marchewki 2 itd. gleby powiedzmy tez damy 4 i beda mialy id 5-8
|
#tworzymy jakas rosline co ma nazwe,i id. ID powiedzmy ze buraki beda mialy 1, marchewki 2 itd. gleby powiedzmy tez damy 4 i beda mialy id 5-8
|
||||||
def __init__(self, name, ID):
|
def __init__(self, name, ID):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self._soil = -1 #jak tworzymy rosline to nie bedzie ona miala gleby
|
self._soil = -1 #jak tworzymy rosline to nie bedzie ona miala gleby
|
||||||
self._name = name #to nazwa rosliny będzie np. burak1
|
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
|
self._id = ID #id rosliny buraki bedą mialy 1, i po tym inne obiekty beda rozpoznawac ten obiekt
|
||||||
|
self._collect = 0 #nowa roslina jest w 0% dojrzala
|
||||||
#to jest jakbysmy usuneli obiekt zabezpieczenie, zeby gleba pozniej była wolna
|
|
||||||
def __del__(self):
|
#to jest jakbysmy usuneli obiekt. zabezpieczenie, zeby gleba pozniej byla wolna
|
||||||
self.leave_soil()
|
def __del__(self):
|
||||||
|
self.leave_soil()
|
||||||
#to sie drukuje jak zapytamy o stworzony obiekt
|
|
||||||
def __str__(self):
|
#to sie drukuje jak zapytamy o stworzony obiekt
|
||||||
return 'Plant: %s , Soil: %s , Status: %s' % (self._name, self._soil, self._collect())
|
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
|
#metoda abstrakcyjna, kazda roslina ma inny czas rosniecia wiec pass
|
||||||
def collect(self):
|
@abstractmethod
|
||||||
pass
|
def collect(self):
|
||||||
|
pass
|
||||||
@abstractmethod
|
|
||||||
def protect(self, protection):
|
@abstractmethod
|
||||||
pass
|
def fertillizing(self):
|
||||||
|
pass
|
||||||
#pobieramy współrzędne roślinki
|
|
||||||
def get_coordinates(self):
|
@abstractmethod
|
||||||
if self.have_soil():
|
def growing(self):
|
||||||
a = self.get_soil()
|
pass
|
||||||
a.get_coordinates(self) #get coordinates bedzie metodą w glebie
|
|
||||||
|
#pobieramy wspolrzedne roslinki
|
||||||
#pobieramy id roślinki
|
def get_coordinates(self):
|
||||||
def get_id(self):
|
if self.have_soil():
|
||||||
return self._id
|
a = self.get_soil()
|
||||||
|
a.get_coordinates(self) #get coordinates jest metoda w glebie
|
||||||
#dodajemy glebe
|
|
||||||
def add_soil(self, soil):
|
#pobieramy id roślinki
|
||||||
self._soil = soil
|
def get_id(self):
|
||||||
|
return self._id
|
||||||
#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):
|
#dodajemy glebe
|
||||||
return self._soil is not -1
|
def add_soil(self, soil):
|
||||||
|
self._soil = soil
|
||||||
#pobieramy jaka ma glebe, gleba tutaj będzie obiektem
|
|
||||||
def get_soil(self):
|
#zwraca czy roslinka znajduje sie w ziemii obecnie - jak nie ma gleby to znaczy ze nie jest zasadzona jeszcze albo już.
|
||||||
return self._soil
|
def have_soil(self):
|
||||||
|
return self._soil is not -1
|
||||||
#to w przypadku jak bedziemy wyciagac z ziemii roslinke
|
|
||||||
def leave_soil(self):
|
#pobieramy jaka ma glebe, gleba tutaj będzie obiektem
|
||||||
if self.have_soil():
|
def get_soil(self):
|
||||||
a = self.get_soil()
|
return self._soil
|
||||||
a.plant.remove(self) #to bedzie metoda w klasie Soil, bedzie usuwac roslinke z gleby
|
|
||||||
self._soil = -1
|
#to w przypadku jak bedziemy wyciagac z ziemii roslinke
|
||||||
|
def leave_soil(self):
|
||||||
|
if self.have_soil():
|
||||||
|
a = self.get_soil()
|
||||||
|
a.plant_remove() #to bedzie metoda w klasie Soil, bedzie usuwac roslinke z gleby
|
||||||
|
self._soil = -1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
67
soil.py
Normal file
67
soil.py
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
class Soil:
|
||||||
|
|
||||||
|
def __init__(self, x, y, ID):
|
||||||
|
super().__init__()
|
||||||
|
self._id = ID
|
||||||
|
self._x = x
|
||||||
|
self._y = y
|
||||||
|
self._plant = -1 #nowa gleba nie ma roślinki
|
||||||
|
self._dry = 0 #procent wysuszenia gleby, tworząc nową jest nawodniona w 100%
|
||||||
|
self._starttime = datetime.now()
|
||||||
|
|
||||||
|
def __del__(self):
|
||||||
|
self.plant_remove()
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return '(%s, %s), Plant: %s' % (self._x, self._y, self.have_plant())
|
||||||
|
|
||||||
|
# współrzędne pola
|
||||||
|
def get_coordinates(self):
|
||||||
|
return self._x, self._y
|
||||||
|
|
||||||
|
# id gleby
|
||||||
|
def get_id(self):
|
||||||
|
return self._id
|
||||||
|
|
||||||
|
# zasadzenie roślinki
|
||||||
|
def add_plant(self, plant):
|
||||||
|
if not self.have_plant():
|
||||||
|
plant.add_soil(self)
|
||||||
|
self._plant = plant
|
||||||
|
|
||||||
|
# zwraca czy w ziemi znajduje się roślinka
|
||||||
|
def have_plant(self):
|
||||||
|
return self._plant is not -1
|
||||||
|
|
||||||
|
# zwraca roślinkę znajdującą się w ziemii
|
||||||
|
def get_plant(self):
|
||||||
|
return self._soil
|
||||||
|
|
||||||
|
#sprawdza w ilu procentach ziemia jest sucha
|
||||||
|
def is_dry(self):
|
||||||
|
self.__drying()
|
||||||
|
if self._dry < 30:
|
||||||
|
return 'False'
|
||||||
|
elif 30 <= self._dry < 70:
|
||||||
|
return 'Medium'
|
||||||
|
else:
|
||||||
|
return 'True'
|
||||||
|
|
||||||
|
#metoda wysuszajaca ziemie. dodaje wysuszenie do ziemi, wywolywana w momencie sprawdzania czy ziemia jest sucha
|
||||||
|
def __drying(self):
|
||||||
|
checktime = datetime.now()
|
||||||
|
delta = checktime - self._starttime
|
||||||
|
a = delta //60
|
||||||
|
self._dry += a
|
||||||
|
self._starttime = checktime
|
||||||
|
self.__is_dry()
|
||||||
|
|
||||||
|
|
||||||
|
# usuwa roślinkę z ziemi i ją zwraca
|
||||||
|
def plant_remove(self):
|
||||||
|
if self.have_plant():
|
||||||
|
a = self.get_plant()
|
||||||
|
a.leave_soil()
|
||||||
|
self._plant = -1
|
Loading…
Reference in New Issue
Block a user