SprytnyTraktor/plant.py
Tomasz Adamczyk 2836a0771d bug ruchu
2021-04-10 18:24:13 +02:00

54 lines
3.4 KiB
Python

import definitions
class Plant:
def __init__(self, name, state):
self.name = name #nazwa rośliny np. "wheat"
self.state = state #etap rozwoju rośliny
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
# @staticmethod
# def get_closest_mature_plant(map1, tractor1):
# x = -1
# y = -1
# min = definitions.WIDTH_AMOUNT + definitions.HEIGHT_AMOUNT + 1
# for i in range(definitions.WIDTH_AMOUNT):
# for j in range(definitions.HEIGHT_AMOUNT):
# field = map1.get_fields()[i][j]
# if field.get_plant().get_name() == "beetroot" and field.get_plant().get_state() == definitions.BEETROOTS_MAXIMUM_STATE: #and abs(tractor1.get_x() - i) + abs(tractor1.get_y() - j) < min:
# x = i
# y = j
# min = abs(tractor1.get_x() - i) + abs(tractor1.get_y() - j)
# elif field.get_plant().get_name() == "carrot" and field.get_plant().get_state() == definitions.CARROTS_MAXIMUM_STATE: #and abs(tractor1.get_x() - i) + abs(tractor1.get_y() - j) < min:
# x = i
# y = j
# min = abs(tractor1.get_x() - i) + abs(tractor1.get_y() - j)
# elif field.get_plant().get_name() == "potato" and field.get_plant().get_state() == definitions.POTATOES_MAXIMUM_STATE: #and abs(tractor1.get_x() - i) + abs(tractor1.get_y() - j) < min:
# x = i
# y = j
# min = abs(tractor1.get_x() - i) + abs(tractor1.get_y() - j)
# elif field.get_plant().get_name() == "wheat" and field.get_plant().get_state() == definitions.WHEAT_MAXIMUM_STATE: #and abs(tractor1.get_x() - i) + abs(tractor1.get_y() - j) < min:
# x = i
# y = j
# min = abs(tractor1.get_x() - i) + abs(tractor1.get_y() - j)
# if x == -1 and y == -1:
# return False
# else:
# return x, y
@staticmethod
def grow_plants(map1): #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):
field = map1.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:
field.get_plant().set_state(field.get_plant().get_state() + 1)