Skip to content

Commit ef3bba6

Browse files
Add agent coloring
1 parent 6bfb13f commit ef3bba6

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

multiagent/core.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import numpy as np
2+
import seaborn as sns
23

34
# physical/external base state of all entites
45
class EntityState(object):
@@ -164,6 +165,20 @@ def calculate_distances(self):
164165
self.cached_dist_mag = np.linalg.norm(self.cached_dist_vect, axis=2)
165166
self.cached_collisions = (self.cached_dist_mag <= self.min_dists)
166167

168+
def assign_agent_colors(self):
169+
n_dummies = 0
170+
if hasattr(self.agents[0], 'dummy'):
171+
n_dummies = len([a for a in self.agents if a.dummy])
172+
n_adversaries = 0
173+
if hasattr(self.agents[0], 'adversary'):
174+
n_adversaries = len([a for a in self.agents if a.adversary])
175+
n_good_agents = len(self.agents) - n_adversaries - n_dummies
176+
dummy_colors = [(0, 0, 0)] * n_dummies
177+
adv_colors = sns.color_palette("OrRd_d", n_adversaries)
178+
good_colors = sns.color_palette("GnBu_d", n_good_agents)
179+
colors = dummy_colors + adv_colors + good_colors
180+
for color, agent in zip(colors, self.agents):
181+
agent.color = color
167182

168183
# update state of the world
169184
def step(self):

0 commit comments

Comments
 (0)