Prześlij pliki do ''

dodanie klas soil i carrot
This commit is contained in:
Dominik Małyszka 2020-04-07 17:15:42 +00:00
parent 0e8a2a72ef
commit b0154dc37e
3 changed files with 166 additions and 60 deletions

34
carrot.py Normal file
View 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

View File

@ -2,14 +2,15 @@ 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 #to jest jakbysmy usuneli obiekt. zabezpieczenie, zeby gleba pozniej byla wolna
def __del__(self): def __del__(self):
self.leave_soil() self.leave_soil()
@ -23,14 +24,18 @@ class Plant:
pass pass
@abstractmethod @abstractmethod
def protect(self, protection): def fertillizing(self):
pass pass
#pobieramy współrzędne roślinki @abstractmethod
def growing(self):
pass
#pobieramy wspolrzedne roslinki
def get_coordinates(self): def get_coordinates(self):
if self.have_soil(): if self.have_soil():
a = self.get_soil() a = self.get_soil()
a.get_coordinates(self) #get coordinates bedzie metodą w glebie a.get_coordinates(self) #get coordinates jest metoda w glebie
#pobieramy id roślinki #pobieramy id roślinki
def get_id(self): def get_id(self):
@ -52,7 +57,7 @@ class Plant:
def leave_soil(self): def leave_soil(self):
if self.have_soil(): if self.have_soil():
a = self.get_soil() a = self.get_soil()
a.plant.remove(self) #to bedzie metoda w klasie Soil, bedzie usuwac roslinke z gleby a.plant_remove() #to bedzie metoda w klasie Soil, bedzie usuwac roslinke z gleby
self._soil = -1 self._soil = -1

67
soil.py Normal file
View 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