76 lines
2.4 KiB
Python

import utils
import sunflower
def drone_main(needed, start_x, start_y, world_size_x, world_size_y):
while num_items(Items.Wood) < needed:
if num_items(Items.Power) == 0:
return
for y in range(world_size_y):
for x in range(world_size_x):
utils.go_to_xy(start_x + x, start_y + y)
if utils.is_empty():
if (get_pos_y() % 2) == 0:
if (get_pos_x() % 2) == 0:
plant(Entities.Tree)
else:
plant(Entities.Bush)
else:
if (get_pos_x() % 2) == 1:
plant(Entities.Tree)
else:
plant(Entities.Bush)
else:
if can_harvest():
to_plant = get_entity_type()
harvest()
plant(to_plant)
while (num_items(Items.Water) > 0 and
get_water() < 0.7):
use_item(Items.Water)
for y in range(world_size_y - 1):
for x in range(world_size_x):
utils.go_to_xy(start_x + x, start_y + world_size_y - y - 1)
if utils.is_empty():
if (get_pos_y() % 2) == 0:
if (get_pos_x() % 2) == 0:
plant(Entities.Tree)
else:
plant(Entities.Bush)
else:
if (get_pos_x() % 2) == 1:
plant(Entities.Tree)
else:
plant(Entities.Bush)
else:
if can_harvest():
to_plant = get_entity_type()
harvest()
plant(to_plant)
while (num_items(Items.Water) > 0 and
get_water() < 0.7):
use_item(Items.Water)
def farm(needed):
if num_items(Items.Wood) >= needed:
return
sunflower.farm(10000)
set_world_size(max_drones())
utils.clear_field(True)
def task(id):
drone_main(needed, id, 0, 1, get_world_size())
utils.parallel_run(max_drones(), task)
if num_items(Items.Wood) < needed:
farm(needed)