world_size = 3
# Основная рабочая функция, которую будут выполнять ВСЕ дроны
def farm_pumpkins(start_x, start_y, width, height):
# Цикл бесконечной работы на своём участке
while True:
# Сажаем и ухаживаем
for x in range(start_x, start_x + width):
for y in range(start_y, start_y + height):
# Перемещаемся на нужную клетку
go_to(x, y)
# Подготовка почвы и посадка
if get_ground_type() != Grounds.Soil:
till()
if get_entity_type() != Entities.Pumpkin:
if num_items(Items.Pumpkin_Seed) == 0:
trade(Items.Pumpkin_Seed)
plant(Entities.Pumpkin)
# Ждём созревания на своём участке
all_ready = False
while not all_ready:
all_ready = True
for x in range(start_x, start_x + width):
for y in range(start_y, start_y + height):
go_to(x, y)
if get_entity_type() == Entities.Pumpkin:
if not can_harvest():
all_ready = False
# Собираем урожай
for x in range(start_x, start_x + width):
for y in range(start_y, start_y + height):
go_to(x, y)
if can_harvest():
harvest()
# --- Функция для перемещения на точные координаты (используем датчики) ---
def go_to(target_x, target_y):
while get_pos_x() != target_x:
if get_pos_x() < target_x:
move(East)
else:
move(West)
while get_pos_y() != target_y:
if get_pos_y() < target_y:
move(North)
else:
move(South)
# --- ЗАПУСК: Главный дрон распределяет работу ---
# Делим поле 3x3 на две части. Например:
# Дрон 1: левая половина (x от 0 до 1, y от 0 до 2) - 6 клеток
# Дрон 2: правая половина (x от 2 до 2, y от 0 до 2) - 3 клетки
# Пытаемся запустить второго дрона на его участок
if not spawn_drone(farm_pumpkins, 2, 0, 1, 3):
# Если запустить не удалось, выведем сообщение (но у тебя должно получиться)
print("Не удалось запустить второго дрона")
# Первый (текущий) дрон берёт на себя оставшийся участок
farm_pumpkins(0, 0, 2, 3)