From 3ae42f4e6771aad6d7768840d80cb3b4cf06cf24 Mon Sep 17 00:00:00 2001 From: Yi-Ting Shih Date: Fri, 12 Dec 2025 08:15:29 +0800 Subject: [PATCH] Feat: done except full reset, maze, dino --- cactus.py | 4 +- farm24.py | 28 ++++++++----- farm32.py | 59 +++++++++++++++----------- leaderboard.py | 3 +- maze.py | 40 ++++++++++++++---- mix.py | 36 +++++++++++++++- pumpkin.py | 111 +++++++++++++++++++++++++++++++++++++++++-------- save.json | 2 +- sunflower.py | 40 +++++++++++++----- utils.py | 5 ++- 10 files changed, 252 insertions(+), 76 deletions(-) diff --git a/cactus.py b/cactus.py index 60481b5..e8e5913 100644 --- a/cactus.py +++ b/cactus.py @@ -1,4 +1,5 @@ import utils, solve +import sunflower def grow(xl, xr, yl, yr): def init(): @@ -98,6 +99,5 @@ if __name__ == '__main__': clear() solve.run([ - grow.cactus(0, 32, 0, 32), - check(), + grow(0, 32, 0, 32), ])() diff --git a/farm24.py b/farm24.py index 7e37cc1..b36aa93 100644 --- a/farm24.py +++ b/farm24.py @@ -7,21 +7,29 @@ base24 = [ ] mixs24 = [ - [mix.grow(0, 4, 8, 16)], - [mix.grow(4, 8, 8, 16)], - [mix.grow(0, 4, 16, 24)], - [mix.grow(4, 8, 16, 24)], + [mix.grow( 0, 4, 8, 16)], + [mix.grow( 4, 8, 8, 16)], + [mix.grow( 0, 4, 16, 24)], + [mix.grow( 4, 8, 16, 24)], + [mix.grow( 8, 12, 0, 8)], + [mix.grow(12, 16, 0, 8)], + [mix.grow(16, 20, 8, 16)], + [mix.grow(20, 24, 8, 16)], + [mix.grow( 8, 12, 8, 16)], + [mix.grow(12, 16, 8, 16)], + [mix.grow(16, 20, 0, 8)], + [mix.grow(20, 24, 0, 8)], - [pumpkin.grow(8, 16, 8)], - [pumpkin.grow(16, 8, 8)], + #[pumpkin.grow( 8, 0, 8)], + #[pumpkin.grow(16, 8, 8)], - [cactus.grow( 8, 16, 8, 16)], - [cactus.grow(16, 24, 16, 24)], + #[cactus.grow( 8, 16, 8, 16)], + #[cactus.grow(16, 24, 0, 8)], ] mazes24 = [ - [maze.grow( 8, 0, 8)], - [maze.grow(16, 0, 8)], + [maze.grow( 8, 16, 8)], + [maze.grow(16, 16, 8)], ] def farm24(): diff --git a/farm32.py b/farm32.py index ec160ab..cb19048 100644 --- a/farm32.py +++ b/farm32.py @@ -1,42 +1,51 @@ -import solve, grow, utils +import solve, utils +import sunflower, mix base32 = [ - grow.sunflower_base(0, 2, 24, 32), - grow.sunflower(2, 8, 24, 32), + sunflower.growbase(0, 8, 0, 2), + sunflower.grow(0, 8, 2, 8), ] mixs32 = [ - [grow.three_mix(0, 4, 0, 8)], - [grow.three_mix(4, 8, 0, 8)], - [grow.three_mix(0, 4, 8, 16)], - [grow.three_mix(4, 8, 8, 16)], - [grow.three_mix(0, 4, 16, 24)], - [grow.three_mix(4, 8, 16, 24)], + [mix.grow( 8, 12, 0, 8)], + [mix.grow(12, 16, 0, 8)], + [mix.grow(16, 20, 0, 8)], + [mix.grow(20, 24, 0, 8)], + [mix.grow(24, 28, 0, 8)], + [mix.grow(28, 32, 0, 8)], - [grow.pumpkin( 8, 0, 8)], - [grow.pumpkin(16, 8, 8)], - [grow.pumpkin( 8, 16, 8)], - [grow.pumpkin(16, 24, 8)], + [mix.grow( 0, 4, 8, 16)], + [mix.grow( 4, 8, 8, 16)], + [mix.grow( 8, 12, 8, 16)], + [mix.grow(12, 16, 8, 16)], + [mix.grow(16, 20, 8, 16)], + [mix.grow(20, 24, 8, 16)], + [mix.grow(24, 28, 8, 16)], + [mix.grow(28, 32, 8, 16)], - [grow.cactus(16, 24, 0, 8)], - [grow.cactus( 8, 16, 8, 16)], - [grow.cactus(16, 24, 16, 24)], - [grow.cactus( 8, 16, 24, 32)], -] + [mix.grow( 0, 4, 16, 24)], + [mix.grow( 4, 8, 16, 24)], + [mix.grow( 8, 12, 16, 24)], + [mix.grow(12, 16, 16, 24)], + [mix.grow(16, 20, 16, 24)], + [mix.grow(20, 24, 16, 24)], + [mix.grow(24, 28, 16, 24)], + [mix.grow(28, 32, 16, 24)], -mazes32 = [ - [grow.maze(24, 0, 8)], - [grow.maze(24, 8, 8)], - [grow.maze(24, 16, 8)], - [grow.maze(24, 24, 8)], + [mix.grow( 0, 4, 24, 32)], + [mix.grow( 4, 8, 24, 32)], + [mix.grow( 8, 12, 24, 32)], + [mix.grow(12, 16, 24, 32)], + [mix.grow(16, 20, 24, 32)], + [mix.grow(20, 24, 24, 32)], + [mix.grow(24, 28, 24, 32)], + [mix.grow(28, 32, 24, 32)], ] def farm32(): set_world_size(32) clear() - for maze in mazes32: - utils.spawn(solve.run(maze, 4000)) for mix in mixs32: utils.spawn(solve.run(mix)) solve.run(base32)() diff --git a/leaderboard.py b/leaderboard.py index 5435cc7..5491e73 100644 --- a/leaderboard.py +++ b/leaderboard.py @@ -1 +1,2 @@ -leaderboard_run(Leaderboards.Dinosaur, "snake", 10000) +# leaderboard_run(Leaderboards.Dinosaur, "snake", 10000) +leaderboard_run(Leaderboards.Sunflowers, "sunflower", 10000) diff --git a/maze.py b/maze.py index 678644e..610953d 100644 --- a/maze.py +++ b/maze.py @@ -1,5 +1,5 @@ import solve, utils -import sunflower +import pumpkin d = [North, West, South, East] def grow(xl, yl, n, repeat=1): @@ -45,10 +45,36 @@ def grow(xl, yl, n, repeat=1): return (init, run) +def grow_full(x, y, replant=False): + substance = 4 * 2**(num_unlocked(Unlocks.Mazes) - 1) + + def ret(): + utils.mv(x, y) + do_a_flip() + + while True: + if get_entity_type() == Entities.Treasure: + harvest() + if replant and get_entity_type() != Entities.Hedge: + plant(Entities.Bush) + use_item(Items.Weird_Substance, substance) + + return ret + if __name__ == '__main__': - set_world_size(32) - utils.spawn(solve.run([ - sunflower.growbase(0, 2, 0, 8), - sunflower.grow(2, 8, 0, 8), - ])) - solve.run([grow(0, 0, 32)])() + set_world_size(8) + clear() + + jobs = list() + for d in range(2): + for x in range(4): + for y in range(4): + if x == 2 and y == 2: + jobs.append(grow_full(d*4+x, y, True)) + else: + jobs.append(grow_full(d*4+x, y)) + + for job in jobs[:-1]: + spawn_drone(job) + + jobs[-1]() diff --git a/mix.py b/mix.py index 6c6d2ca..4887ca5 100644 --- a/mix.py +++ b/mix.py @@ -1,4 +1,8 @@ import utils +import solve + +def mv(tx, ty): + utils.mv(tx, ty, True) def grow(xl, xr, yl, yr): def init(): @@ -35,5 +39,35 @@ def grow(xl, xr, yl, yr): utils.replant(Entities.Carrot) return (init, run) +def grow_row(x, yl, yr): + def ret(): + for y in range(yl, yr): + mv(x, y) + typ = x%2 + y%2 + if typ == 0: + utils.grass() + utils.replant(Entities.Tree) + if typ == 1: + utils.soil() + utils.replant(Entities.Carrot) + if typ == 2: + utils.grass() + + while True: + for y in range(yl, yr): + mv(x, y) + typ = x%2 + y%2 + if typ == 1: + utils.water() + while not utils.harv(): + pass + utils.replant(Entities.Carrot) + return ret + if __name__ == '__main__': - pass + set_world_size(32) + clear() + + for x in range(0, 32-1): + spawn_drone(grow_row(x, 0, 32)) + grow_row(32-1, 0, 32)() diff --git a/pumpkin.py b/pumpkin.py index 76a8467..7a61093 100644 --- a/pumpkin.py +++ b/pumpkin.py @@ -1,38 +1,115 @@ import utils +import solve def grow(xl, yl, n): def init(): - for x in range(xl, xl+n): - l, r, d = yl, yl+n, 1 - if x%2 == 1: - l, r, d = yl+n-1, yl-1, -1 - for y in range(l, r, d): - utils.mv(x, y) - utils.soil() + def fillx(x): + def ret(): + for y in range(yl, yl+n): + utils.mv(x, y) + utils.soil() + return ret + + drowns = list() + for x in range(xl+1, xl+n): + drown = None + while drown == None: + drown = spawn_drone(fillx(x)) + drowns.append(drown) + fillx(xl)() + for drown in drowns: + wait_for(drown) def run(): check = list() for x in range(xl, xl+n): - l, r, d = yl, yl+n, 1 - if x%2 == 1: - l, r, d = yl+n-1, yl-1, -1 - for y in range(l, r, d): - utils.mv(x, y) - utils.water() - utils.replant(Entities.Pumpkin) + for y in range(yl, yl+n): check.append((x, y)) + def fillx(x): + def ret(): + for y in range(yl, yl+n): + utils.mv(x, y) + utils.water() + utils.replant(Entities.Pumpkin) + return ret + + drowns = list() + for x in range(xl+1, xl+n): + drown = None + while drown == None: + drown = spawn_drone(fillx(x)) + drowns.append(drown) + fillx(xl)() + for drown in drowns: + wait_for(drown) + while len(check): nxt = list() - for x, y in check[::-1]: + for x, y in check[::-1]: utils.mv(x, y) if not can_harvest(): - nxt.append((x, y)) if get_entity_type() == Entities.Dead_Pumpkin: - plant(Entities.Pumpkin) + while not can_harvest(): + plant(Entities.Pumpkin) + if not use_item(Items.Fertilizer): + nxt.append((x, y)) + break + else: + nxt.append((x, y)) check = nxt utils.mv(xl, yl) utils.harv() return (init, run) + +def grow_parallel(xl, xm, xr, yl, yr): + def ret(): + + def init(check, xl, xr, yl, yr): + for x in range(xl, xr): + for y in range(yl, yr): + utils.mv(x, y) + utils.soil() + utils.water() + plant(Entities.Pumpkin) + check.append((x, y)) + + def replant(xl, xr, yl, yr): + def ret(): + check = list() + init(check, xl, xr, yl, yr) + + while len(check): + nxt = list() + for x, y in check[::-1]: + utils.mv(x, y) + utils.water() + if not can_harvest(): + if get_entity_type() == Entities.Dead_Pumpkin: + plant(Entities.Pumpkin) + nxt.append((x, y)) + check = nxt + + return ret + + while True: + drown = spawn_drone(replant(xl, xm, yl, yr)) + replant(xm, xr, yl, yr)() + wait_for(drown) + utils.harv() + + return ret + +if __name__ == '__main__': + set_world_size(32) + clear() + + jobs = list() + for x in range(0, 4): + for y in range(0, 4): + jobs.append(grow_parallel(x*8, x*8+4, x*8+7, y*8, y*8+7)) + for job in jobs[:-1]: + spawn_drone(job) + jobs[-1]() diff --git a/save.json b/save.json index 7c30161..4f3fca0 100644 --- a/save.json +++ b/save.json @@ -1 +1 @@ -{"items":{"serializeList":[{"name":"hay","nr":732862776.0},{"name":"wood","nr":4085470918.0},{"name":"carrot","nr":1111796064.0},{"name":"pumpkin","nr":109301095.0},{"name":"cactus","nr":371811694.0},{"name":"bone","nr":30887608.0},{"name":"weird_substance","nr":428014.0},{"name":"gold","nr":20484298.0},{"name":"water","nr":1232080.0},{"name":"fertilizer","nr":25358.0}]},"dockedFiles":[{"key":"cactus","value":"maze"},{"key":"farm24","value":"farm32"},{"key":"hats","value":"utils"},{"key":"leaderboard","value":"farm24"},{"key":"maze","value":"snake"},{"key":"pumpkin","value":"mix"},{"key":"sunflower","value":"pumpkin"},{"key":"utils","value":"solve"}],"minimizedFiles":["farm24","farm32","leaderboard"],"openFilePositions":[{"key":"cactus","value":{"x":825.1744995117188,"y":158.076904296875}},{"key":"farm24","value":{"x":825.1744995117188,"y":158.076904296875}},{"key":"farm32","value":{"x":-634.2324829101563,"y":2230.040283203125}},{"key":"hats","value":{"x":825.1744995117188,"y":158.076904296875}},{"key":"leaderboard","value":{"x":825.1744995117188,"y":158.076904296875}},{"key":"maze","value":{"x":825.1744995117188,"y":158.076904296875}},{"key":"mix","value":{"x":-1656.432861328125,"y":1936.912841796875}},{"key":"pumpkin","value":{"x":825.1744995117188,"y":158.076904296875}},{"key":"snake","value":{"x":-693.8130493164063,"y":1927.7490234375}},{"key":"solve","value":{"x":-2349.65087890625,"y":2051.2119140625}},{"key":"sunflower","value":{"x":825.1744995117188,"y":158.076904296875}},{"key":"utils","value":{"x":825.1744995117188,"y":158.076904296875}}],"openFileScrollPositions":[{"key":"cactus","value":1007.769775390625},{"key":"farm24","value":450.0},{"key":"farm32","value":149.98077392578126},{"key":"hats","value":0.0},{"key":"leaderboard","value":0.0},{"key":"maze","value":299.99945068359377},{"key":"mix","value":0.0},{"key":"pumpkin","value":-0.0008544921875},{"key":"snake","value":2418.223388671875},{"key":"solve","value":0.00030517578125},{"key":"sunflower","value":0.0},{"key":"utils","value":599.9998779296875}],"openFileSizes":[{"key":"cactus","value":{"x":0.0,"y":0.0}},{"key":"farm24","value":{"x":0.0,"y":0.0}},{"key":"farm32","value":{"x":0.0,"y":0.0}},{"key":"hats","value":{"x":0.0,"y":0.0}},{"key":"leaderboard","value":{"x":0.0,"y":0.0}},{"key":"maze","value":{"x":0.0,"y":0.0}},{"key":"mix","value":{"x":0.0,"y":0.0}},{"key":"pumpkin","value":{"x":0.0,"y":0.0}},{"key":"snake","value":{"x":0.0,"y":0.0}},{"key":"solve","value":{"x":0.0,"y":0.0}},{"key":"sunflower","value":{"x":0.0,"y":0.0}},{"key":"utils","value":{"x":0.0,"y":0.0}}],"openDocPages":[],"unlocks":["grass_10","soil","harvest","pass","do_a_flip","pet_the_piggy","grassland","hay","straw_hat","while","true","false","break","continue","loops","speed_5","can_harvest","if","else","elif","expand_9","move","north","south","east","west","for","range","get_world_size","wood","bush","entities","clear","plant","change_hat","gray_hat","purple_hat","green_hat","brown_hat","hats","traffic_cone","and","or","not","operators","carrots_10","carrot","till","can_trade","trade","items","carrot_seed","get_entity_type","get_ground_type","grounds","get_pos_x","get_pos_y","none","num_items","num_unlocked","senses","watering_9","water","use_item","get_water","trees_10","tree","tree_hat","sunflower_seed","sunflower","power","get_active_power","measure","sunflowers","pumpkins_10","pumpkin","pumpkin_seed","dead_pumpkin","carrot_hat","variables","functions","def","return","global","from","import","fertilizer_4","weird_substance","append","remove","pop","insert","len","list","lists","traffic_cone_stack","print","quick_print","unlocks","str","debug","pumpkin_hat","sunflower_hat","swap","cactus_seed","cactus_6","get_companion","polyculture_5","hedge","treasure","gold","can_move","mazes_6","dicts","sets","add","dict","set","dictionaries","get_cost","costs","min","max","abs","random","utilities","get_time","get_tick_count","timing","unlock","auto_unlock","wizard_hat","cactus_hat","gold_hat","megafarm_5","get_drone_id","num_drones","max_drones","wait_for","spawn_drone","has_finished","dinosaurs_6","dinosaur","egg","bone","dinosaur_hat","apple","set_execution_speed","set_world_size","debug_2","simulate","simulation","leaderboard_run","leaderboards","leaderboard","golden_cactus_hat","the_farmers_remains"],"version":3} \ No newline at end of file +{"items":{"serializeList":[{"name":"hay","nr":2126151992.0},{"name":"wood","nr":13442136262.0},{"name":"carrot","nr":2433310170.0},{"name":"pumpkin","nr":386010855.0},{"name":"cactus","nr":45521902.0},{"name":"bone","nr":30887608.0},{"name":"weird_substance","nr":7421646.0},{"name":"gold","nr":14014922.0},{"name":"water","nr":1571836.0},{"name":"fertilizer","nr":28066.0},{"name":"power","nr":597564.7140000112}]},"dockedFiles":[{"key":"cactus","value":"maze"},{"key":"farm24","value":"farm32"},{"key":"hats","value":"utils"},{"key":"leaderboard","value":"farm24"},{"key":"maze","value":"snake"},{"key":"pumpkin","value":"mix"},{"key":"sunflower","value":"pumpkin"},{"key":"utils","value":"solve"}],"minimizedFiles":["farm32","leaderboard"],"openFilePositions":[{"key":"cactus","value":{"x":825.173583984375,"y":-109.423828125}},{"key":"farm24","value":{"x":825.173583984375,"y":-109.423828125}},{"key":"farm32","value":{"x":-681.9122314453125,"y":2821.310302734375}},{"key":"hats","value":{"x":825.173583984375,"y":-109.423828125}},{"key":"leaderboard","value":{"x":825.173583984375,"y":-109.423828125}},{"key":"maze","value":{"x":825.173583984375,"y":-109.423828125}},{"key":"mix","value":{"x":-1656.432861328125,"y":1936.9075927734375}},{"key":"pumpkin","value":{"x":825.173583984375,"y":-109.423828125}},{"key":"snake","value":{"x":-693.814208984375,"y":1927.741943359375}},{"key":"solve","value":{"x":-2349.65283203125,"y":2051.204833984375}},{"key":"sunflower","value":{"x":825.173583984375,"y":-109.423828125}},{"key":"utils","value":{"x":825.173583984375,"y":-109.423828125}},{"key":"docs0","value":{"x":1122.8577880859375,"y":1939.3671875}}],"openFileScrollPositions":[{"key":"cactus","value":48.94798278808594},{"key":"farm24","value":757.3106689453125},{"key":"farm32","value":0.0},{"key":"hats","value":0.0},{"key":"leaderboard","value":-100.0},{"key":"maze","value":1620.765625},{"key":"mix","value":205.3017578125},{"key":"pumpkin","value":0.0},{"key":"snake","value":2418.223388671875},{"key":"solve","value":-0.0001220703125},{"key":"sunflower","value":400.8338928222656},{"key":"utils","value":2209.4697265625}],"openFileSizes":[{"key":"cactus","value":{"x":0.0,"y":0.0}},{"key":"farm24","value":{"x":0.0,"y":0.0}},{"key":"farm32","value":{"x":0.0,"y":0.0}},{"key":"hats","value":{"x":0.0,"y":0.0}},{"key":"leaderboard","value":{"x":0.0,"y":0.0}},{"key":"maze","value":{"x":0.0,"y":0.0}},{"key":"mix","value":{"x":0.0,"y":0.0}},{"key":"pumpkin","value":{"x":0.0,"y":0.0}},{"key":"snake","value":{"x":0.0,"y":0.0}},{"key":"solve","value":{"x":0.0,"y":0.0}},{"key":"sunflower","value":{"x":0.0,"y":0.0}},{"key":"utils","value":{"x":0.0,"y":0.0}},{"key":"docs0","value":{"x":900.0,"y":700.0}}],"openDocPages":[{"key":"docs0","value":"docs/home.md"}],"unlocks":["grass_10","soil","harvest","pass","do_a_flip","pet_the_piggy","grassland","hay","straw_hat","while","true","false","break","continue","loops","speed_5","can_harvest","if","else","elif","expand_9","move","north","south","east","west","for","range","get_world_size","wood","bush","entities","clear","plant","change_hat","gray_hat","purple_hat","green_hat","brown_hat","hats","traffic_cone","and","or","not","operators","carrots_10","carrot","till","can_trade","trade","items","carrot_seed","get_entity_type","get_ground_type","grounds","get_pos_x","get_pos_y","none","num_items","num_unlocked","senses","watering_9","water","use_item","get_water","trees_10","tree","tree_hat","sunflower_seed","sunflower","power","get_active_power","measure","sunflowers","pumpkins_10","pumpkin","pumpkin_seed","dead_pumpkin","carrot_hat","variables","functions","def","return","global","from","import","fertilizer_4","weird_substance","append","remove","pop","insert","len","list","lists","traffic_cone_stack","print","quick_print","unlocks","str","debug","pumpkin_hat","sunflower_hat","swap","cactus_seed","cactus_6","get_companion","polyculture_5","hedge","treasure","gold","can_move","mazes_6","dicts","sets","add","dict","set","dictionaries","get_cost","costs","min","max","abs","random","utilities","get_time","get_tick_count","timing","unlock","auto_unlock","wizard_hat","cactus_hat","gold_hat","megafarm_5","get_drone_id","num_drones","max_drones","wait_for","spawn_drone","has_finished","dinosaurs_6","dinosaur","egg","bone","dinosaur_hat","apple","set_execution_speed","set_world_size","debug_2","simulate","simulation","leaderboard_run","leaderboards","leaderboard","golden_cactus_hat","the_farmers_remains","top_hat","golden_sunflower_hat","golden_tree_hat","golden_carrot_hat","golden_pumpkin_hat"],"version":3} \ No newline at end of file diff --git a/sunflower.py b/sunflower.py index 2036aae..4e4e94c 100644 --- a/sunflower.py +++ b/sunflower.py @@ -65,7 +65,7 @@ def grow(xl, xr, yl, yr): utils.mv(x, y) pos[measure()-7].append((x, y)) - for p in pos[::-1]: + for p in pos[::-1]: for x, y in p: utils.mv(x, y) while not utils.harv(): @@ -88,19 +88,23 @@ def growparallel(xl, xr, yl, yr): return ret drowns = list() - for x in range(xl+1, xr): + for x in range(xl, xr-1): + utils.mv(x, get_pos_y()) drown = None while drown == None: drown = spawn_drone(fillx(x)) drowns.append(drown) - fillx(xl)() + fillx(xr-1)() for drown in drowns: wait_for(drown) def run(): - def harvx(k, x): + def harvx(k, x, inv): def ret(): - for y in range(yl, yr): + l, r, d = yl, yr, 1 + if inv == True: + l, r, d = yr-1, yl-1, -1 + for y in range(l, r, d): utils.mv(x, y) if measure() == k: while not utils.harv(): @@ -109,12 +113,16 @@ def growparallel(xl, xr, yl, yr): for k in range(15, 6, -1): drowns = list() - for x in range(xl+1, xr): + l, r, d = xl, xr, 1 + if k%2 == 1: + l, r, d = xr-1, xl-1, -1 + for x in range(l, r-d, d): + utils.mv(x, get_pos_y()) drown = None while drown == None: - drown = spawn_drone(harvx(k, x)) + drown = spawn_drone(harvx(k, x, k%2 == 1)) drowns.append(drown) - harvx(k, xl)() + harvx(k, r-d, k%2 == 1)() for drown in drowns: wait_for(drown) @@ -122,11 +130,21 @@ def growparallel(xl, xr, yl, yr): return (init, run) +def check(): + def init(): + pass + + def run(): + if num_items(Items.Power) >= 100000: + return True + + return (init, run) + if __name__ == '__main__': - set_world_size(8) + set_world_size(32) clear() solve.run([ - growbase(0, 8, 0, 2), - grow(0, 8, 2, 8), + growparallel(0, 32, 0, 32) + # check(), ])() diff --git a/utils.py b/utils.py index 17fa63c..1a055b1 100644 --- a/utils.py +++ b/utils.py @@ -82,7 +82,10 @@ def replant(entity): def spawn(func, x=0, y=0): mv(x, y) - spawn_drone(func) + drone = None + while drone == None: + drone = spawn_drone(func) + return drone def meas(arg=None): ret = None