Ejemplo n.º 1
0
    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())
Ejemplo n.º 2
0
    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())
Ejemplo n.º 3
0
def world():
    d = world_queries.total_pop()
    return render_response(d)
Ejemplo n.º 4
0
def world():
    d = world_queries.total_pop()
    return render_response(d)