def go(self): yield Sim.hold, self, params['segregate time'] random.shuffle(LineAgent.all_agents) pop1 = LinePopulation( 500.0, 500.0, 20.0, 20.0, params['mean speak'], params['mean learn'], params['mean innovation'], params['pop1 mean loc'], params['pop1 loc sd'], params['mean talk radius']) pop2 = LinePopulation( 500.0, 500.0, 20.0, 20.0, params['mean speak'], params['mean learn'], params['mean innovation'], params['pop2 mean loc'], params['pop2 loc sd'], params['mean talk radius']) for agent in LineAgent.all_agents: if len(pop1.all_agents()) < params['pop1 proportion']*LineAgent.num_agents(): pop1.add_agent(agent) else: pop2.add_agent(agent) LineAgent.all_agents.sort(lambda x,y:cmp(x.location,y.location)) LinePopulation.all_pops.pop('Population 0')