def migration(self): s = 0 for x in range(0, settings.worldx): for y in range(0, settings.worldy): my_sol = self.map[x][y].pop.standard_of_living best_neighbor = [x, y, my_sol] neighbors = [] for i in range(-1*settings.migration_range, settings.migration_range): for j in range(-1*settings.migration_range, settings.migration_range): neighbors.append([x+i, y+j, -9999]) for n, neighbor in enumerate(neighbors): if neighbor[0] >= 0 and neighbor[0]< settings.worldx and neighbor[1] >= 0 and neighbor[1] < settings.worldy: nx = neighbor[0] ny = neighbor[1] neighbors[n][2] = self.map[nx][ny].pop.standard_of_living * random.random()*settings.migration_randomness - settings.migration_randomness * 0.5 if neighbors[n][2] > best_neighbor[2]: best_neighbor = neighbors[n] sol_diff = best_neighbor[2] - my_sol if sol_diff > 0.0001: n = settings.migration_coefficient * sol_diff / (my_sol + best_neighbor[2]) * self.map[x][y].pop.n s += n self.migrate_tiles([x, y], [best_neighbor[0], best_neighbor[1]], n) print str(s)+" MIGRATING" print "TOTAL POP: "+str(world_queries.total_pop())
def migration(self): s = 0 for x in range(0, settings.worldx): for y in range(0, settings.worldy): my_sol = self.map[x][y].pop.standard_of_living best_neighbor = [x, y, my_sol] neighbors = [] for i in range(-1 * settings.migration_range, settings.migration_range): for j in range(-1 * settings.migration_range, settings.migration_range): neighbors.append([x + i, y + j, -9999]) for n, neighbor in enumerate(neighbors): if neighbor[0] >= 0 and neighbor[ 0] < settings.worldx and neighbor[ 1] >= 0 and neighbor[1] < settings.worldy: nx = neighbor[0] ny = neighbor[1] neighbors[n][2] = self.map[nx][ ny].pop.standard_of_living * random.random( ) * settings.migration_randomness - settings.migration_randomness * 0.5 if neighbors[n][2] > best_neighbor[2]: best_neighbor = neighbors[n] sol_diff = best_neighbor[2] - my_sol if sol_diff > 0.0001: n = settings.migration_coefficient * sol_diff / ( my_sol + best_neighbor[2]) * self.map[x][y].pop.n s += n self.migrate_tiles([x, y], [best_neighbor[0], best_neighbor[1]], n) print str(s) + " MIGRATING" print "TOTAL POP: " + str(world_queries.total_pop())
def world(): d = world_queries.total_pop() return render_response(d)