Ejemplo n.º 1
0
 def make_world(self):
     world = World()
     # set any world properties first
     world.dim_c = 2
     num_agents = 7
     world.num_agents = num_agents
     num_adversaries = num_agents - 1
     num_balls = 1
     # add agents
     world.agents = [Agent() for i in range(num_agents)]
     for i, agent in enumerate(world.agents):
         agent.name = 'agent %d' % i
         agent.collide = True
         agent.silent = True
         agent.adversary = True if i < num_adversaries else False
         agent.size = 0.08 if i < num_adversaries else 0.08
     # add landmarks
     world.balls = [Landmark() for i in range(num_balls)]
     for i, ball in enumerate(world.balls):
         ball.name = 'ball %d' % i
         ball.collide = False
         ball.movable = False
         ball.size = 0.03
     # make initial conditions
     self.reset_world(world)
     return world
Ejemplo n.º 2
0
    def make_world(self, **kwargs):
        self.before_make_world(**kwargs)

        world = World()
        world.np_random = self.np_random
        # cache kwargs in case needed in Env wrapper
        world.config = kwargs
        # set any world properties first
        world.collaborative = True
        # all entity positions are scaled/extended by size
        world.size = kwargs.get("world_size", 1)
        world.dim_c = kwargs.get("dim_c", 2)

        num_agents = kwargs.get("num_agents", 3)
        # num_good_agents = kwargs.get("num_good_agents", 1)
        # num_adversaries = kwargs.get("num_adversaries", 1)
        # num_agents = num_adversaries + num_good_agents
        num_landmarks = kwargs.get("num_landmarks", 2)
        num_balls = kwargs.get("num_balls", 1)

        # add agents
        world.agents = [SkilledAgent() for i in range(num_agents)]
        for i, agent in enumerate(world.agents):
            agent.name = 'agent %d' % i
            agent.collide = True
            agent.silent = kwargs.get("agent_silence", True)
            agent.size = 0.025
            # agent.adversary = True if i < num_adversaries else False
            # agent.type = "adversary" if agent.adversary else "agent"
            # agent.size = 0.075 if agent.adversary else 0.05
            # agent.accel = 3.0 if agent.adversary else 4.0
            # agent.max_speed = 1.0 if agent.adversary else 1.3
            self.change_entity_attribute(agent, world, **kwargs)

        # add landmarks
        world.landmarks = [Landmark() for i in range(num_landmarks)]
        for i, landmark in enumerate(world.landmarks):
            landmark.name = 'landmark %d' % i
            landmark.collide = True
            landmark.movable = False
            # landmark.size = 0.075
            self.change_entity_attribute(landmark, world, **kwargs)

        # add balls
        world.balls = [Landmark() for i in range(num_balls)]
        for i, landmark in enumerate(world.balls):
            landmark.name = 'ball %d' % i
            landmark.collide = True
            landmark.movable = True
            landmark.size = 0.2
            self.change_entity_attribute(landmark, world, **kwargs)

        # make initial conditions
        self.reset_world(world, **kwargs)
        return world