Beispiel #1
0
def build_ants(
    n_ants,
    size=SIZE,
    search_strategy=None,
    jump_distance=None,
    chemicals=None,
    nest=None,
):
    random.seed = 1
    ants = []
    if nest is None:
        nest = Nest(int(size[0]/2), int(size[1]/2))

    if chemicals is None:
        chemicals = Chemicals(size=size)

    for _ in range(n_ants):
        ant = Ant(
            nest=nest,
            chemicals=chemicals
        )
        if search_strategy:
            ant.search_strategy = search_strategy
        if jump_distance:
            ant.max_jump_distance=jump_distance
        ants.append(ant)

    return ants
Beispiel #2
0
    def test_ants_should_avoid_existing_search_traces(self):
        ant = Ant(nest=Nest(0, 0), chemicals=Chemicals())
        ant.chemicals.search += 1.0
        ant.chemicals.search[N.x, N.y] = 0.0
        ant.last_direction = N
        ant.search_strategy = SearchWithAvoidance()

        ant.tick()

        self.assertEqual(N, ant.location)