Загрузка данных


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)