76 lines
2.4 KiB
Python
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)
|