写在前面
建议大家 无人机数量 ≥ 农场边长。注意以下两个科技树,使其匹配:
农场边长:
无人机数量:
Catus
横竖各冒泡排序一次,如果要优化可以记录是否还有逆序对,若该行列没有,则释放无人机,放在其他行列做swap动作。
#set_world_size(8)
#set_execution_speed(1)
n=get_world_size()
clear()
def move_to(x,y):
x0=get_pos_x()
y0=get_pos_y()
for i in range(abs(x-x0)):
if x-x0 >0:
move(East)
else:
move(West)
for i in range(abs(y-y0)):
if y-y0 >0:
move(North)
else:
move(South)
def make_drone_v():
for i in range(n):
if get_ground_type() == Grounds.Grassland:
till()
plant(Entities.Cactus)
move(North)
for i in range(n-1):
for j in range(n-i-1):
if measure() > measure(North):
swap(North)
if i%2 == 0:
move(North)
else:
move(South)
if i%2 == 1:
move(North)
move(North)
else:
move(South)
move(South)
def make_drone_h():
for i in range(n-1):
for j in range(n-i-1):
if measure() > measure(East):
swap(East)
if i%2 == 0:
move(East)
else:
move(West)
if i%2 == 1:
move(East)
move(East)
else:
move(West)
move(West)
while True:
move_to(0,0)
for i in range(n-1):
spawn_drone(make_drone_v)
move(East)
make_drone_v()
move(East)
while num_drones() > 1:
pass
move_to(0,0)
for i in range(n-1):
spawn_drone(make_drone_h)
move(North)
make_drone_h()
move(North)
while num_drones() > 1:
pass
harvest()