Skip to content

Commit 3334275

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent b7b9b2e commit 3334275

2 files changed

Lines changed: 12 additions & 28 deletions

File tree

examples/needs_based_wolf_sheep/agents.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import mesa
21
from mesa.discrete_space import CellAgent
32

43

@@ -18,13 +17,10 @@ def update_drives(self):
1817
self.fear = max(0.0, self.fear - 0.1)
1918

2019
def move(self):
21-
self.cell = self.random.choice(
22-
list(self.cell.connections.values())
23-
)
20+
self.cell = self.random.choice(list(self.cell.connections.values()))
2421

2522

2623
class NeedsBasedWolf(NeedsBasedAnimal):
27-
2824
def step(self):
2925
self.move()
3026
self.energy -= 1
@@ -35,34 +31,28 @@ def step(self):
3531
return
3632

3733
if self.hunger > 0.6:
38-
sheep = [
39-
a for a in self.cell.agents
40-
if isinstance(a, NeedsBasedSheep)
41-
]
34+
sheep = [a for a in self.cell.agents if isinstance(a, NeedsBasedSheep)]
4235
if sheep:
4336
prey = self.random.choice(sheep)
4437
self.energy += 4
4538
self.hunger = 0.0
4639
prey.remove()
4740
return
4841

49-
if (self.energy > 20 and self.fear < 0.3
50-
and self.hunger < 0.4):
42+
if self.energy > 20 and self.fear < 0.3 and self.hunger < 0.4:
5143
if self.random.random() < self.model.wolf_reproduce:
5244
self.energy //= 2
5345
NeedsBasedWolf(self.model, self.energy)
5446

5547

5648
class NeedsBasedSheep(NeedsBasedAnimal):
57-
5849
def step(self):
5950
self.move()
6051
self.energy -= 1
6152
self.update_drives()
6253

6354
wolves_nearby = sum(
64-
1 for a in self.cell.agents
65-
if isinstance(a, NeedsBasedWolf)
55+
1 for a in self.cell.agents if isinstance(a, NeedsBasedWolf)
6656
)
6757
if wolves_nearby > 0:
6858
self.fear = min(1.0, self.fear + 0.5)
@@ -78,8 +68,7 @@ def step(self):
7868
self.cell.grass = False
7969
return
8070

81-
if (self.energy > 6 and self.fear < 0.2
82-
and self.hunger < 0.3):
71+
if self.energy > 6 and self.fear < 0.2 and self.hunger < 0.3:
8372
if self.random.random() < self.model.sheep_reproduce:
8473
self.energy //= 2
85-
NeedsBasedSheep(self.model, self.energy)
74+
NeedsBasedSheep(self.model, self.energy)

examples/needs_based_wolf_sheep/model.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import mesa
2+
from agents import NeedsBasedSheep, NeedsBasedWolf
23
from mesa.discrete_space import OrthogonalMooreGrid
3-
from agents import NeedsBasedWolf, NeedsBasedSheep
44

55

66
class GrassPatch(mesa.Agent):
@@ -36,8 +36,7 @@ def __init__(
3636
self.grass_regrowth_rate = grass_regrowth_rate
3737

3838
self.grid = OrthogonalMooreGrid(
39-
(width, height), torus=True, capacity=None,
40-
random=self.random
39+
(width, height), torus=True, capacity=None, random=self.random
4140
)
4241

4342
# Place grass patches
@@ -59,12 +58,8 @@ def __init__(
5958

6059
self.datacollector = mesa.DataCollector(
6160
model_reporters={
62-
"Wolves": lambda m: len(
63-
m.agents_by_type[NeedsBasedWolf]
64-
),
65-
"Sheep": lambda m: len(
66-
m.agents_by_type[NeedsBasedSheep]
67-
),
61+
"Wolves": lambda m: len(m.agents_by_type[NeedsBasedWolf]),
62+
"Sheep": lambda m: len(m.agents_by_type[NeedsBasedSheep]),
6863
}
6964
)
7065

@@ -79,8 +74,8 @@ def step(self):
7974
model.step()
8075
data = model.datacollector.get_model_vars_dataframe()
8176
print(
82-
f"Step {i+1:3d}: "
77+
f"Step {i + 1:3d}: "
8378
f"Wolves={int(data['Wolves'].iloc[-1]):3d}, "
8479
f"Sheep={int(data['Sheep'].iloc[-1]):3d}"
8580
)
86-
print("Done — model ran 100 steps successfully.")
81+
print("Done — model ran 100 steps successfully.")

0 commit comments

Comments
 (0)