The Farmer Was Replaced All Script Codes

The Farmer Was Replaced All Script Codes

This guide lists all the scripts that will help you earn and complete achievements in The Farmer Was Replaced.

The Farmer Was Replaced Codes

Here’s my list of scripts that will help you complete most of the achievements in The Farmer Was Replaced;

Hay Farm

Polyculture with Multiple Drones

# Hay farm with polyculture and multiple drones
clear()
world_size = get_world_size()
change_hat(Hats.Brown_Hat)

companion_mapping = {}
hay_mapping = {}

def track_companion(curr_x, curr_y):
    global companion_mapping
    global hay_mapping
    
    result = get_companion()
    if result is None:
        return False
        
    target_entity, (target_x, target_y) = result

    if (target_x, target_y) not in companion_mapping:
        companion_mapping[(target_x, target_y)] = target_entity
        hay_mapping[(curr_x, curr_y)] = (target_x, target_y)
        return True
    return False


def drone_hay_task():
    global world_size
    global companion_mapping
    global hay_mapping
    
    while True:
        for j in range(world_size):
            curr_x = get_pos_x()
            curr_y = get_pos_y()
            
            harvest()
            
            if get_ground_type() == Grounds.Soil:
                till()

            if (curr_x, curr_y) in companion_mapping:
                target_entity = companion_mapping[(curr_x, curr_y)]
                
                if target_entity == Entities.Carrot:
                    if get_ground_type() != Grounds.Soil:
                        till()
                    plant(Entities.Carrot)
                elif target_entity != Entities.Grass:
                    plant(target_entity)
            else:
                if (curr_x, curr_y) in hay_mapping:
                    companion_pos = hay_mapping.pop((curr_x, curr_y))
                    if companion_pos in companion_mapping:
                        companion_mapping.pop(companion_pos)
                
                track_companion(curr_x, curr_y)
            
            move(North)


NUM_DRONES_TO_SPAWN = world_size - 1

for i in range(NUM_DRONES_TO_SPAWN):
    while num_drones() >= max_drones():
        pass
    spawn_drone(drone_hay_task)
    move(East)

drone_hay_task()

Single Drone (Leaderboard)

# Hay farm with only one drone (for leaderboard maybe)
companion_mapping = {}
hay_mapping = {}

def track_companion():
    global companion_mapping
    global hay_mapping
    
    target_entity, (target_x, target_y) = get_companion()

    while target_entity == Entities.Carrot and num_items(Items.Wood) < 1:
        harvest()
        target_entity, (target_x, target_y) = get_companion()

    if (target_x, target_y) not in companion_mapping:
        companion_mapping[(target_x, target_y)] = target_entity
        hay_mapping[(x_curr, y_curr)] = (target_x, target_y)	


while True:
    if num_items(Items.Hay) >= 1000000000000:
        break
	
    x_curr = get_pos_x()
    y_curr = get_pos_y()
	
    if get_entity_type() == Entities.Grass:
        if can_harvest():
            harvest()
        if (x_curr, y_curr) in hay_mapping:
            companion_pos = hay_mapping.pop((x_curr, y_curr))
            companion_mapping.pop(companion_pos)
		
        if (x_curr, y_curr) in companion_mapping:
            target_entity = companion_mapping[(x_curr, y_curr)]
            if target_entity not in [Entities.Bush, Entities.Tree]:
                till()
            plant(target_entity)
        else:
            track_companion()
		
    else:
        if (x_curr, y_curr) not in companion_mapping:
            if get_ground_type() != Grounds.Grassland:
                till()
            else:
                harvest()
            track_companion()

    if y_curr == get_world_size() - 1:
        move(East)
    move(North)

Wood Farm

Polyculture with Multiple Drones

# Wood farm with polyculture and multiple drones
clear()
world_size = get_world_size()
change_hat(Hats.Brown_Hat)

companion_mapping = {}
tree_mapping = {}

def tree_tile(curr_x, curr_y):
    return curr_x % 2 == curr_y % 2


def track_companion(curr_x, curr_y):
    global companion_mapping
    global tree_mapping
    
    result = get_companion()
    if result is None:
        return False
        
    target_entity, (target_x, target_y) = result

    if (target_x, target_y) not in companion_mapping:
        companion_mapping[(target_x, target_y)] = target_entity
        tree_mapping[(curr_x, curr_y)] = (target_x, target_y)
        return True
    return False


def drone_tree_task():
    global world_size
    global companion_mapping
    global tree_mapping
    
    while True:
        for j in range(world_size):
            curr_x = get_pos_x()
            curr_y = get_pos_y()
			
            if tree_tile(curr_x, curr_y):
                if can_harvest():
                    harvest()
                    plant(Entities.Tree)
				
                if (curr_x, curr_y) in tree_mapping:
                    companion_pos = tree_mapping.pop((curr_x, curr_y))
                    if companion_pos in companion_mapping:
                        companion_mapping.pop(companion_pos)

                track_companion(curr_x, curr_y)
				
                if get_water() < 0.40:
                    use_item(Items.Water)
					
            elif (curr_x, curr_y) in companion_mapping:
                target_entity = companion_mapping[(curr_x, curr_y)]
                harvest()
				
                if target_entity == Entities.Grass:
                    if get_ground_type() != Grounds.Grassland:
                        till()
						
                elif target_entity == Entities.Carrot:
                    if get_ground_type() != Grounds.Soil:
                        till()

                plant(target_entity)
				
            else:
                harvest()
                plant(Entities.Bush)
				
            move(North)


NUM_DRONES_TO_SPAWN = 31

for i in range(NUM_DRONES_TO_SPAWN):
    while num_drones() >= max_drones():
        pass
    spawn_drone(drone_tree_task)
    move(East)

drone_tree_task()

Polyculture with Single Drone

# Wood farm with polyculture and only one drone
world_size = get_world_size()
target_num = 10000000000

companion_mapping = {}
tree_mapping = {}

def track_companion(curr_x, curr_y):
    global companion_mapping
    global hay_mapping
    
    target_entity, (target_x, target_y) = get_companion()
    if not tree_tile(target_x, target_y) and (target_x, target_y) not in companion_mapping:
        companion_mapping[(target_x, target_y)] = target_entity
        tree_mapping[(curr_x, curr_y)] = (target_x, target_y)
        return True
    return False


def tree_tile(curr_x, curr_y):
    return curr_x % 2 == curr_y % 2


while True:
    curr_x = get_pos_x()
    curr_y = get_pos_y()
    
    if tree_tile(curr_x, curr_y):
        if (curr_x, curr_y) in tree_mapping:
            while not can_harvest():
                use_item(Items.Fertilizer)
        harvest()
        plant(Entities.Tree)
        
        if (curr_x, curr_y) in tree_mapping:
            companion_pos = tree_mapping.pop((curr_x, curr_y))
            companion_mapping.pop(companion_pos)
				
        if track_companion(curr_x, curr_y) and get_water() < 0.10:
            use_item(Items.Water)
			
    elif (curr_x, curr_y) in companion_mapping:
        target_entity = companion_mapping[(curr_x, curr_y)]
        harvest()
		
        if target_entity == Entities.Grass:
            if get_ground_type() != Grounds.Grassland:
                till()
        elif target_entity == Entities.Carrot and get_ground_type() != Grounds.Soil:
            till()
            plant(target_entity)
        else:
            plant(target_entity)
			
    else:
        harvest()
        plant(Entities.Bush)
		
    if num_items(Items.Wood) >= target_num:
        break

    move(North)
    
    curr_y = get_pos_y()
    if curr_y == world_size - 1:
        move(East)

Carrot Farm

Polyculture with Multiple Drones

# Carrot farm with polyculture and multiple drones
clear()
world_size = get_world_size()
change_hat(Hats.Brown_Hat)

companion_mapping = {}
carrot_mapping = {}

def track_companion(curr_x, curr_y):
    global companion_mapping
    global carrot_mapping
    
    result = get_companion()
    if result is None:
        return False
        
    target_entity, (target_x, target_y) = result

    if (target_x, target_y) not in companion_mapping:
        companion_mapping[(target_x, target_y)] = target_entity
        carrot_mapping[(curr_x, curr_y)] = (target_x, target_y)
        return True
    return False


def prepare_and_plant(entity_type):
    if entity_type in (Entities.Carrot, Entities.Bush, Entities.Tree) and get_ground_type() != Grounds.Soil:
        till()
    plant(entity_type)


def drone_carrot_task():
    global world_size
    global companion_mapping
    global carrot_mapping
    
    while True:
        for j in range(world_size):
            curr_x = get_pos_x()
            curr_y = get_pos_y()
			
            harvest()
			
            if (curr_x, curr_y) in companion_mapping:
                target_entity = companion_mapping[(curr_x, curr_y)]
                prepare_and_plant(target_entity)
				
                if target_entity == Entities.Carrot and get_water() < 0.10:
                    use_item(Items.Water)
					
            elif (curr_x, curr_y) in carrot_mapping:
                prepare_and_plant(Entities.Carrot)
				
                if get_water() < 0.10:
                    use_item(Items.Water)

                companion_pos = carrot_mapping.pop((curr_x, curr_y))
                if companion_pos in companion_mapping:
                    companion_mapping.pop(companion_pos)
				
                track_companion(curr_x, curr_y)
				
            else:
                prepare_and_plant(Entities.Carrot)
				
                if get_water() < 0.10:
                    use_item(Items.Water)

                track_companion(curr_x, curr_y)
				
            move(North)


NUM_DRONES_TO_SPAWN = world_size - 1

for i in range(NUM_DRONES_TO_SPAWN):
    while num_drones() >= max_drones():
        pass
    spawn_drone(drone_carrot_task)
    move(East)

drone_carrot_task()

Mixed Farm – Woods and Carrots

# Mixed farm with woods and carrots
clear()
set_world_size(max_drones() - 1)
change_hat(Hats.Brown_Hat)

hats = [Hats.Green_Hat, Hats.Purple_Hat]
world_size = get_world_size()

def plant_crop(i, j):
    if (i + j) % 2 == 0:
        plant(Entities.Tree)
    else:
        plant(Entities.Carrot)
    
    if get_water() < 0.5:
        use_item(Items.Water)


def run_drone():
    global hats
    
    change_hat(hats[get_pos_x() % 2])
    
    for j in range(get_world_size()):
        if get_ground_type() != Grounds.Soil:
            till()
            plant_crop(get_pos_x(), j)

        if can_harvest():
            harvest()
            plant_crop(get_pos_x(), j)
        move(North)


def run_carrots_trees():
    global world_size
    
    for i in range(world_size):
        spawn_drone(run_drone)
        while num_drones() >= max_drones():
            pass
        move(East)
	

while True:
    run_carrots_trees()

Sunflower Farm

# Sunflower farm
clear()
change_hat(Hats.Brown_Hat)

hats = [Hats.Green_Hat, Hats.Purple_Hat]
world_size = get_world_size()

max_petals = 15
min_petals = 7 

def replant_systematically():
    harvest()
    if get_ground_type() != Grounds.Soil:
        till()
    plant(Entities.Sunflower)
    if get_water() < 0.5:
        use_item(Items.Water)


def create_worker_task(target_petal, is_replant_phase):
    def encapsulated_worker_task():
        if get_pos_x() < world_size - 1:
            change_hat(hats[get_pos_x() % 2])
		
        for j in range(world_size):
            if measure() == target_petal:
                while not can_harvest():
                    use_item(Items.Fertilizer)
                harvest()
			
            if is_replant_phase:
                if get_entity_type() != Entities.Sunflower:
                    replant_systematically()
			
            move(North)
        return
    return encapsulated_worker_task


def drone_task_initial_setup():
    for j in range(world_size):
        if can_harvest():
            harvest()
        replant_systematically()
        move(North)
    return


def drone_task_manager():
    global world_size
	
    change_hat(Hats.Brown_Hat)
    first_run = True
	
    while True:
        if first_run:
            for i in range(world_size - 1):
                spawn_drone(drone_task_initial_setup)
                move(East)
            drone_task_initial_setup()
            move(East)
            first_run = False
		
        for petal_count in range(max_petals, min_petals, -1):
            worker_task = create_worker_task(petal_count, False)
            for i in range(world_size - 1):
                spawn_drone(worker_task)
                move(East)
            worker_task()
            move(East)
		
        worker_task_replant_total = create_worker_task(min_petals, True)
        for i in range(world_size - 1):
            spawn_drone(worker_task_replant_total)
            move(East)
        worker_task_replant_total()
        move(East)


def run_sunflower():
    drone_task_manager()
	

while True:
    run_sunflower()

Pumpkins

# Pumpkins
# There is certainly room for improvement, but it does the job.

clear()
change_hat(Hats.Brown_Hat)
world_size = get_world_size()
first_pass = True


def check_pumpkin():
    if get_pos_x() != 0:
        move(East)

    left_id = measure()
    move(West)
    right_id = measure()
    move(East)

    return left_id == right_id


def wait_for_drones(drones):
    for drone in drones:
        wait_for(drone)


def plant_column():
    global world_size, first_pass

    for j in range(world_size):
        if get_entity_type() != Entities.Pumpkin:
            if get_ground_type() != Grounds.Soil:
                till()
            plant(Entities.Pumpkin)

            if not first_pass:
                while not can_harvest():
                    if get_entity_type() == Entities.Dead_Pumpkin:
                        plant(Entities.Pumpkin)
                    use_item(Items.Fertilizer)

        move(North)

    if not first_pass:
        for j in range(world_size):
            if get_entity_type() == Entities.Dead_Pumpkin:
                plant(Entities.Pumpkin)
            move(North)


def plant_pumpkins():
    global world_size, first_pass
    drones = []

    if get_pos_x() != 0:
        move(East)

    for i in range(world_size - 1):
        drones.append(spawn_drone(plant_column))
        move(East)

    plant_column()
    wait_for_drones(drones)


while True:
    plant_pumpkins()
    first_pass = False

    if check_pumpkin():
        harvest()
        first_pass = True
        move(West)

Cactus

clear()
hats = [Hats.Green_Hat, Hats.Purple_Hat]
world_size = get_world_size()


def _shortest_delta(curr, dest):
    size = world_size
    d = (dest - curr) % size
    if d > size / 2:
        d -= size
    return d


def move_to_x_pos(x_target):
    x_curr = get_pos_x()
    moves_needed = _shortest_delta(x_curr, x_target)
    direction = East if moves_needed > 0 else West

    for _ in range(abs(moves_needed)):
        move(direction)


def move_to_y_pos(y_target):
    y_curr = get_pos_y()
    moves_needed = _shortest_delta(y_curr, y_target)
    direction = North if moves_needed > 0 else South

    for _ in range(abs(moves_needed)):
        move(direction)


def wait_for_drones(drones):
    for drone in drones:
        wait_for(drone)


def drone_action_plant_cacti():
    global world_size
    change_hat(hats[get_pos_x() % 2])

    for _ in range(world_size):
        if get_ground_type() != Grounds.Soil:
            till()
        plant(Entities.Cactus)
        move(North)


def plant_cacti():
    global world_size
    move_to_x_pos(0)
    move_to_y_pos(0)

    drones = []
    for _ in range(world_size - 1):
        drones.append(spawn_drone(drone_action_plant_cacti))
        move(East)

    drone_action_plant_cacti()
    move(East)
    move(North)

    wait_for_drones(drones)


def shake_row():
    global world_size
    change_hat(hats[get_pos_y() % 2])

    left, right = 0, world_size - 1

    while left < right:
        move_to_x_pos(left)
        loc_last_swap = left
        x_curr = get_pos_x()

        while x_curr < right:
            if measure() > measure(East):
                swap(East)
                loc_last_swap = x_curr
            move(East)
            x_curr += 1

        right = loc_last_swap
        if left >= right:
            break

        move_to_x_pos(right)
        loc_last_swap = right
        x_curr = get_pos_x()

        while x_curr > left:
            if measure(West) > measure():
                swap(West)
                loc_last_swap = x_curr
            move(West)
            x_curr -= 1

        left = loc_last_swap


def shake_col():
    global world_size
    change_hat(hats[get_pos_x() % 2])

    left, right = 0, world_size - 1

    while left < right:
        move_to_y_pos(left)
        loc_last_swap = left
        y_curr = get_pos_y()

        while y_curr < right:
            if measure() > measure(North):
                swap(North)
                loc_last_swap = y_curr
            move(North)
            y_curr += 1

        right = loc_last_swap
        if left >= right:
            break

        move_to_y_pos(right)
        loc_last_swap = right
        y_curr = get_pos_y()

        while y_curr > left:
            if measure(South) > measure():
                swap(South)
                loc_last_swap = y_curr
            move(South)
            y_curr -= 1

        left = loc_last_swap


def sort_columns():
    global world_size
    move_to_x_pos(0)
    move_to_y_pos(0)

    drones = []
    for _ in range(world_size - 1):
        drones.append(spawn_drone(shake_col))
        move(East)

    shake_col()
    move(East)
    move(North)
    wait_for_drones(drones)


def sort_rows():
    global world_size
    move_to_x_pos(0)
    move_to_y_pos(0)

    drones = []
    for _ in range(world_size - 1):
        drones.append(spawn_drone(shake_row))
        move(North)

    shake_row()
    move(North)
    wait_for_drones(drones)


while True:
    plant_cacti()
    sort_columns()
    sort_rows()
    harvest()

Wrong Order

# For the "Wrong Order" Achievement

clear()
hats = [Hats.Green_Hat, Hats.Purple_Hat]

set_world_size(6)
world_size = get_world_size()


def _shortest_delta(curr, dest):
    size = world_size
    d = (dest - curr) % size
    if d > size / 2:
        d -= size
    return d


def move_to_x_pos(x_target):
    x_curr = get_pos_x()
    moves_needed = _shortest_delta(x_curr, x_target)
    direction = East if moves_needed > 0 else West
    for _ in range(abs(moves_needed)):
        move(direction)


def move_to_y_pos(y_target):
    y_curr = get_pos_y()
    moves_needed = _shortest_delta(y_curr, y_target)
    direction = North if moves_needed > 0 else South
    for _ in range(abs(moves_needed)):
        move(direction)


def wait_for_drones(drones):
    for drone in drones:
        wait_for(drone)


def drone_action_plant_cacti():
    global world_size

    change_hat(hats[get_pos_x() % 2])

    for _ in range(world_size):
        if get_ground_type() != Grounds.Soil:
            till()
        plant(Entities.Cactus)
        move(North)


def plant_cacti():
    global world_size

    move_to_x_pos(0)
    move_to_y_pos(0)

    drones = []

    for _ in range(world_size - 1):
        drones.append(spawn_drone(drone_action_plant_cacti))
        move(East)

    drone_action_plant_cacti()

    move(East)
    move(North)

    wait_for_drones(drones)


def shake_row():
    global world_size

    change_hat(hats[get_pos_y() % 2])

    left = 0
    right = world_size - 1

    while left < right:
        move_to_x_pos(left)

        loc_last_swap = left
        x_curr = get_pos_x()

        # Left-to-right pass
        while x_curr < right:
            # If the current element is smaller than the next, swap
            if measure() < measure(East):
                swap(East)
                loc_last_swap = x_curr
            move(East)
            x_curr += 1

        right = loc_last_swap
        if left >= right:
            break

        move_to_x_pos(right)

        loc_last_swap = right
        x_curr = get_pos_x()

        # Right-to-left pass
        while x_curr > left:
            # If the previous element is larger than the current, swap
            if measure(West) > measure():
                swap(West)
                loc_last_swap = x_curr
            move(West)
            x_curr -= 1

        left = loc_last_swap


def shake_col():
    global world_size

    change_hat(hats[get_pos_x() % 2])

    left = 0
    right = world_size - 1

    while left < right:
        move_to_y_pos(left)

        loc_last_swap = left
        y_curr = get_pos_y()

        # Bottom-to-top pass
        while y_curr < right:
            # If the current element is smaller than the one above, swap
            if measure() < measure(North):
                swap(North)
                loc_last_swap = y_curr
            move(North)
            y_curr += 1

        right = loc_last_swap
        if left >= right:
            break

        move_to_y_pos(right)

        loc_last_swap = right
        y_curr = get_pos_y()

        # Top-to-bottom pass
        while y_curr > left:
            # If the element below is larger than the current, swap
            if measure(South) > measure():
                swap(South)
                loc_last_swap = y_curr
            move(South)
            y_curr -= 1

        left = loc_last_swap


def sort_columns():
    global world_size

    move_to_x_pos(0)
    move_to_y_pos(0)

    drones = []

    for _ in range(world_size - 1):
        drones.append(spawn_drone(shake_col))
        move(East)

    shake_col()

    move(East)
    move(North)

    wait_for_drones(drones)


def sort_rows():
    global world_size

    move_to_x_pos(0)
    move_to_y_pos(0)

    drones = []

    for _ in range(world_size - 1):
        drones.append(spawn_drone(shake_row))
        move(North)

    shake_row()

    move(North)
    wait_for_drones(drones)


while True:
    plant_cacti()
    sort_columns()
    sort_rows()
    harvest()

Dino

# Dino
world_size = get_world_size()
world_size_minus_one = world_size - 1

edge_positions = [0, world_size_minus_one]

offlimit_columns_stage1 = {
}
offlimit_columns_stage2 = {
}

clear()
change_hat(Hats.Dinosaur_Hat)

apple_pos = measure()
squares_occupied = 1
game_complete = False
aggressive_stage = True


def measure_apple():
    global apple_pos
    global squares_occupied
    global apple_pos_queue
    apple_pos = measure()
    squares_occupied += 1


def move_and_check_apple(direction):
    global apple_pos

    if not move(direction):
        return False
    if (get_pos_x(), get_pos_y()) == apple_pos:
        measure_apple()

    return True


def move_to_col(target_x_pos, do_measure=True):
    global world_size
    global apple_pos

    curr_x = get_pos_x()
    direction = West
    if curr_x < target_x_pos:
        direction = East

    for x in range(abs(target_x_pos - curr_x)):
        this_check = move
        if do_measure:
            this_check = move_and_check_apple
        if not this_check(direction):
            return False

    return True


def move_to_row(target_y_pos, do_measure=True):
    global world_size
    global apple_pos

    curr_y = get_pos_y()
    direction = South
    if curr_y < target_y_pos:
        direction = North

    for y in range(abs(target_y_pos - curr_y)):
        this_check = move
        if do_measure:
            this_check = move_and_check_apple
        if not this_check(direction):
            return False

    return True


def transition_to_stage_2():
    global offlimit_columns_stage1
    global world_size
    global world_size_minus_one

    move_to_col(world_size_minus_one)
    move_to_row(0)

    offlimit_columns_stage1 = {
    }

    return False


def transition_to_stage_1():
    global offlimit_columns_stage2
    global world_size
    global world_size_minus_one

    move_to_col(0)
    move_to_row(world_size_minus_one)

    offlimit_columns_stage2 = {
    }

    return False


def stage_1_apple_collect():
    global apple_pos
    global world_size
    global offlimit_columns_stage1
    global offlimit_columns_stage2
    global world_size_minus_one

    apple_pos_x, apple_pos_y = apple_pos
    if apple_pos_y == 0 or apple_pos_x in edge_positions or (apple_pos_x in offlimit_columns_stage1 and apple_pos_y <= offlimit_columns_stage1[apple_pos_x]):
        return transition_to_stage_2()
    else:
        apple_x_odd = apple_pos_x % 2
        target_x_pos = apple_pos_x
        if not apple_x_odd:
            target_x_pos = apple_pos_x - 1

        if target_x_pos <= get_pos_x():
            return transition_to_stage_2()
        else:
            move_to_col(target_x_pos)
            move_to_row(apple_pos_y)
            offlimit_columns_stage2[target_x_pos] = apple_pos_y
            offlimit_columns_stage2[target_x_pos + 1] = apple_pos_y
            move_and_check_apple(East)
            move_to_row(world_size_minus_one)

    return True


def stage_2_apple_collect():
    global apple_pos
    global world_size
    global offlimit_columns_stage1
    global offlimit_columns_stage2
    global world_size_minus_one

    apple_pos_x, apple_pos_y = apple_pos
    if apple_pos_y == world_size_minus_one or apple_pos_x in edge_positions or (apple_pos_x in offlimit_columns_stage2 and apple_pos_y >= offlimit_columns_stage2[apple_pos_x]):
        return transition_to_stage_1()
    else:
        apple_x_odd = apple_pos_x % 2
        target_x_pos = apple_pos_x
        if apple_x_odd:
            target_x_pos = apple_pos_x + 1

        if target_x_pos >= get_pos_x():
            return transition_to_stage_1()
        else:
            move_to_col(target_x_pos)
            move_to_row(apple_pos_y)
            offlimit_columns_stage1[target_x_pos] = apple_pos_y
            offlimit_columns_stage1[target_x_pos - 1] = apple_pos_y
            move_and_check_apple(West)
            move_to_row(0)

    return True


def move_to_right_col_wavy():
    global world_size
    global world_size_minus_one
    global offlimit_columns_stage1

    # Assume curr x is zero
    for x in range(world_size):
        if x % 2:
            target_y = 1
            if x in offlimit_columns_stage1:
                target_y = offlimit_columns_stage1[x] + 1
            while get_pos_y() != target_y:
                move(South)
            move(East)
        else:  # x is even, go up to top row, then move right
            while get_pos_y() != world_size_minus_one:
                move(North)
            move(East)


def find_top_left():
    global world_size_minus_one

    while get_pos_x() > 0:
        move(West)
    while get_pos_y() < world_size_minus_one:
        move(North)


def transition_to_route():
    find_top_left()
    move_to_right_col_wavy()
    while get_pos_y() != 0:
        move(South)
    while get_pos_x() != 0:
        move(West)


# STAGE 1
move_to_row(world_size_minus_one)

while aggressive_stage:
    while stage_1_apple_collect() and get_pos_x() < world_size_minus_one:
        pass

    while stage_2_apple_collect() and get_pos_x() > 0:
        pass

    if squares_occupied > (world_size_minus_one) * 4 - 4:
        break

transition_to_route()

while True:
    for i in range(world_size / 2):
        game_complete = not move_to_row(world_size_minus_one, False)
        game_complete = game_complete or not move(East)
        game_complete = game_complete or not move_to_row(1, False)
        if i != world_size / 2 - 1:
            game_complete = game_complete or not move(East)

        if game_complete:
            break

    game_complete = game_complete or not move_to_row(0, False)
    game_complete = game_complete or not move_to_col(0,)

    if game_complete:
        break

change_hat(Hats.Straw_Hat)

Maze

# Maze
ALL_DIRECTIONS = [North, South, East, West]


def opposite_direction(direction):
    if direction == North:
        return South
    elif direction == East:
        return West
    elif direction == South:
        return North
    elif direction == West:
        return East


def explore_option_iterative(start_direction):
    global ALL_DIRECTIONS
    if not move(start_direction):
        return False

    path_stack = [(start_direction, 0)]

    while path_stack and num_items(Items.Gold) < 9863168000000:
        if get_entity_type() == Entities.Treasure:
            harvest()
            start_maze()
            return True

        last_move_direction, next_dir_index = path_stack[-1]

        while next_dir_index < len(ALL_DIRECTIONS):
            explore_direction = ALL_DIRECTIONS[next_dir_index]

            path_stack[-1] = (last_move_direction, next_dir_index + 1)

            if opposite_direction(explore_direction) != last_move_direction:
                if move(explore_direction):
                    path_stack.append((explore_direction, 0))
                    break

            next_dir_index += 1

        if next_dir_index == len(ALL_DIRECTIONS):
            path_stack.pop()
            move(opposite_direction(last_move_direction))

    move(opposite_direction(start_direction))
    return False


def start_maze():
    plant(Entities.Bush)
    substance = get_world_size() * 2**(num_unlocked(Unlocks.Mazes) - 1)
    use_item(Items.Weird_Substance, substance)


def search():
    global drone_id
    global ALL_DIRECTIONS

    for _ in range(drone_id):
        do_a_flip()

    if drone_id % 2:
        ALL_DIRECTIONS = ALL_DIRECTIONS[::-1]
    if drone_id % 3:
        ALL_DIRECTIONS[0], ALL_DIRECTIONS[1] = (ALL_DIRECTIONS[1], ALL_DIRECTIONS[0])
    if drone_id % 5:
        ALL_DIRECTIONS[1], ALL_DIRECTIONS[3] = (ALL_DIRECTIONS[3], ALL_DIRECTIONS[1])

    while True:
        for direction in ALL_DIRECTIONS:
            if explore_option_iterative(direction):
                break


drone_id = 0
start_maze()

for i in range(max_drones()):
    drone_id = i
    spawn_drone(search)

drone_id = 0

search()


# For the "Recycling" and "Big Gold Farmer" achievements
def generate_maze():
    plant(Entities.Bush)
    substance = get_world_size() * 2**(num_unlocked(Unlocks.Mazes) - 1)
    use_item(Items.Weird_Substance, substance)


def maze():
    while True:
        if num_drones() == 25:
            if get_entity_type() == Entities.Treasure:
                harvest()
            generate_maze()


clear()
set_world_size(5)
list = []

while num_drones() < 26:
    pos_x = get_pos_x()
    pos_y = get_pos_y()
    current = (pos_x, pos_y)
    if current not in list:
        list.append(current)
        spawn_drone(maze)
        move(North)
    else:
        move(East)
Scroll to Top