SprytnyTraktor/plant.py

64 lines
3.8 KiB
Python
Raw Normal View History

import definitions
2021-03-21 12:40:13 +01:00
class Plant:
2021-03-27 21:31:22 +01:00
def __init__(self, name, state):
2021-04-03 11:24:39 +02:00
self.name = name #nazwa rośliny np. "wheat"
self.state = state #etap rozwoju rośliny
2021-03-27 21:31:22 +01:00
def get_name(self):
return self.name
def set_name(self, name):
self.name = name
def get_state(self):
return self.state
def set_state(self, state):
self.state = state
2021-04-10 19:16:34 +02:00
@staticmethod
2021-05-31 18:16:14 +02:00
def get_mature_plant(map): #pobiera współrzędne jakiejś dojrzałej rośliny
2021-04-10 19:16:34 +02:00
x = -1
y = -1
for i in range(definitions.WIDTH_AMOUNT):
for j in range(definitions.HEIGHT_AMOUNT):
2021-05-31 18:16:14 +02:00
field = map.get_fields()[i][j]
2021-05-31 17:10:14 +02:00
if field.get_plant().get_name() == "beetroot" and field.get_plant().get_state() == definitions.BEETROOTS_MAXIMUM_STATE:
2021-04-10 19:16:34 +02:00
x = i
y = j
2021-05-31 17:10:14 +02:00
elif field.get_plant().get_name() == "carrot" and field.get_plant().get_state() == definitions.CARROTS_MAXIMUM_STATE:
2021-04-10 19:16:34 +02:00
x = i
y = j
2021-05-31 17:10:14 +02:00
elif field.get_plant().get_name() == "potato" and field.get_plant().get_state() == definitions.POTATOES_MAXIMUM_STATE:
2021-04-10 19:16:34 +02:00
x = i
y = j
2021-05-31 17:10:14 +02:00
elif field.get_plant().get_name() == "wheat" and field.get_plant().get_state() == definitions.WHEAT_MAXIMUM_STATE:
2021-04-10 19:16:34 +02:00
x = i
y = j
if x == -1 and y == -1:
return False
else:
return x, y
@staticmethod
2021-05-31 18:16:14 +02:00
def grow_plants(map): #metoda statyczna, która zwiększa pole state (etap rozwoju rośliny) dla danej rośliny na danym polu o 1
for i in range(definitions.WIDTH_AMOUNT):
for j in range(definitions.HEIGHT_AMOUNT):
2021-05-31 18:16:14 +02:00
field = map.get_fields()[i][j]
if field.get_plant().get_name() == "beetroot" and field.get_plant().get_state() > 0 and field.get_plant().get_state() < definitions.BEETROOTS_MAXIMUM_STATE:
field.get_plant().set_state(field.get_plant().get_state() + 1)
elif field.get_plant().get_name() == "carrot" and field.get_plant().get_state() > 0 and field.get_plant().get_state() < definitions.CARROTS_MAXIMUM_STATE:
field.get_plant().set_state(field.get_plant().get_state() + 1)
elif field.get_plant().get_name() == "potato" and field.get_plant().get_state() > 0 and field.get_plant().get_state() < definitions.POTATOES_MAXIMUM_STATE:
field.get_plant().set_state(field.get_plant().get_state() + 1)
elif field.get_plant().get_name() == "wheat" and field.get_plant().get_state() > 0 and field.get_plant().get_state() < definitions.WHEAT_MAXIMUM_STATE:
2021-05-31 17:10:14 +02:00
field.get_plant().set_state(field.get_plant().get_state() + 1)
@staticmethod
2021-05-31 18:16:14 +02:00
def if_any_mature_plant(map): #sprawdza czy na polu występuje choć jedna dojrzała roślina, jeśli tak zwraca prawdę, w przeciwnym razie zwraca fałsz
2021-05-31 17:10:14 +02:00
for i in range(definitions.WIDTH_AMOUNT):
for j in range(definitions.HEIGHT_AMOUNT):
2021-05-31 18:16:14 +02:00
field = map.get_fields()[i][j]
2021-05-31 17:10:14 +02:00
if field.get_plant().get_name() == "beetroot" and field.get_plant().get_state() == definitions.BEETROOTS_MAXIMUM_STATE:
return True
elif field.get_plant().get_name() == "carrot" and field.get_plant().get_state() == definitions.CARROTS_MAXIMUM_STATE:
return True
elif field.get_plant().get_name() == "potato" and field.get_plant().get_state() == definitions.POTATOES_MAXIMUM_STATE:
return True
elif field.get_plant().get_name() == "wheat" and field.get_plant().get_state() == definitions.WHEAT_MAXIMUM_STATE:
return True
return False