|
246 | 246 | " super().__init__(seed=seed)\n", |
247 | 247 | " self.num_agents = n\n", |
248 | 248 | " # Create agents\n", |
249 | | - " for _ in range(self.num_agents):\n", |
250 | | - " a = MoneyAgent(self)" |
| 249 | + " MoneyAgent.create_agents(model=self, n=n)" |
251 | 250 | ] |
252 | 251 | }, |
253 | 252 | { |
|
295 | 294 | " super().__init__(seed=seed)\n", |
296 | 295 | " self.num_agents = n\n", |
297 | 296 | "\n", |
298 | | - " # Create agents\n", |
299 | | - " for _ in range(self.num_agents):\n", |
300 | | - " a = MoneyAgent(\n", |
301 | | - " self\n", |
302 | | - " ) # This calls the agent class parameter n number of times\n", |
| 297 | + " # Create n agents\n", |
| 298 | + " MoneyAgent.create_agents(model=self, n=n)\n", |
303 | 299 | "\n", |
304 | 300 | " def step(self):\n", |
305 | 301 | " \"\"\"Advance the model by one step.\"\"\"\n", |
|
478 | 474 | " self.num_agents = n\n", |
479 | 475 | "\n", |
480 | 476 | " # Create agents\n", |
481 | | - " for _ in range(self.num_agents):\n", |
482 | | - " a = MoneyAgent(\n", |
483 | | - " self\n", |
484 | | - " ) # This calls the agent class parameter n number of times\n", |
| 477 | + " MoneyAgent.create_agents(model=self, n=n)\n", |
485 | 478 | "\n", |
486 | 479 | " def step(self):\n", |
487 | 480 | " \"\"\"Advance the model by one step.\"\"\"\n", |
|
620 | 613 | " self.grid = mesa.space.MultiGrid(width, height, True)\n", |
621 | 614 | "\n", |
622 | 615 | " # Create agents\n", |
623 | | - " for _ in range(self.num_agents):\n", |
624 | | - " a = MoneyAgent(self)\n", |
625 | | - "\n", |
| 616 | + " agents = MoneyAgent.create_agents(model=self, n=n)\n", |
| 617 | + " # Create x and y positions for agents\n", |
| 618 | + " x = self.rng.randint(0, self.grid.width, size=(n,))\n", |
| 619 | + " y = self.rng.randint(0, self.grid.height, size=(n,))\n", |
| 620 | + " for a, i, j in zip(agents, x, y):\n", |
626 | 621 | " # Add the agent to a random grid cell\n", |
627 | | - " x = self.random.randrange(self.grid.width)\n", |
628 | | - " y = self.random.randrange(self.grid.height)\n", |
629 | | - " self.grid.place_agent(a, (x, y))" |
| 622 | + " self.grid.place_agent(a, (i, j))" |
630 | 623 | ] |
631 | 624 | }, |
632 | 625 | { |
|
724 | 717 | " self.grid = mesa.space.MultiGrid(width, height, True)\n", |
725 | 718 | "\n", |
726 | 719 | " # Create agents\n", |
727 | | - " for _ in range(self.num_agents):\n", |
728 | | - " a = MoneyAgent(self)\n", |
| 720 | + " agents = MoneyAgent.create_agents(model=self, n=n)\n", |
| 721 | + " # Create x and y coordinates for agents\n", |
| 722 | + " x = self.rng.integers(0, self.grid.width, size=(n,))\n", |
| 723 | + " y = self.rng.integers(0, self.grid.height, size=(n,))\n", |
| 724 | + " for a, i, j in zip(agents, x, y):\n", |
729 | 725 | " # Add the agent to a random grid cell\n", |
730 | | - " x = self.random.randrange(self.grid.width)\n", |
731 | | - " y = self.random.randrange(self.grid.height)\n", |
732 | | - " self.grid.place_agent(a, (x, y))\n", |
| 726 | + " self.grid.place_agent(a, (i, j))\n", |
733 | 727 | "\n", |
734 | 728 | " def step(self):\n", |
735 | 729 | " self.agents.shuffle_do(\"move\")\n", |
|
852 | 846 | " other = self.random.choice(cellmates)\n", |
853 | 847 | " other.wealth += 1\n", |
854 | 848 | " self.wealth -= 1\n", |
855 | | - " \n", |
| 849 | + "\n", |
856 | 850 | "\n", |
857 | 851 | "class MoneyModel(mesa.Model):\n", |
858 | 852 | " \"\"\"A model with some number of agents.\"\"\"\n", |
|
868 | 862 | " )\n", |
869 | 863 | "\n", |
870 | 864 | " # Create agents\n", |
871 | | - " for _ in range(self.num_agents):\n", |
872 | | - " a = MoneyAgent(self)\n", |
| 865 | + " agents = MoneyAgent.create_agents(model=self, n=n)\n", |
| 866 | + " # Create x and y positions for agents\n", |
| 867 | + " x = self.rng.integers(0, self.grid.width, size=(n,))\n", |
| 868 | + " y = self.rng.integers(0, self.grid.height, size=(n,))\n", |
| 869 | + " for a, i, j in zip(agents, x, y):\n", |
873 | 870 | " # Add the agent to a random grid cell\n", |
874 | | - " x = self.random.randrange(self.grid.width)\n", |
875 | | - " y = self.random.randrange(self.grid.height)\n", |
876 | | - " self.grid.place_agent(a, (x, y))\n", |
| 871 | + " self.grid.place_agent(a, (i, j))\n", |
877 | 872 | "\n", |
878 | 873 | " def step(self):\n", |
879 | 874 | " self.datacollector.collect(self)\n", |
|
1137 | 1132 | " self.grid = mesa.space.MultiGrid(width, height, True)\n", |
1138 | 1133 | "\n", |
1139 | 1134 | " # Create agents\n", |
1140 | | - " for _ in range(self.num_agents):\n", |
1141 | | - " a = MoneyAgent(self)\n", |
| 1135 | + " agents = MoneyAgent.create_agents(model=self, n=n)\n", |
| 1136 | + " # Create x and y positions for agents\n", |
| 1137 | + " x = self.rng.integers(0, self.grid.width, size=(n,))\n", |
| 1138 | + " y = self.rng.integers(0, self.grid.height, size=(n,))\n", |
| 1139 | + " for a, i, j in zip(agents, x, y):\n", |
1142 | 1140 | " # Add the agent to a random grid cell\n", |
1143 | | - " x = self.random.randrange(self.grid.width)\n", |
1144 | | - " y = self.random.randrange(self.grid.height)\n", |
1145 | | - " self.grid.place_agent(a, (x, y))\n", |
| 1141 | + " self.grid.place_agent(a, (i, j))\n", |
1146 | 1142 | "\n", |
1147 | 1143 | " self.datacollector = mesa.DataCollector(\n", |
1148 | 1144 | " model_reporters={\"Gini\": compute_gini}, agent_reporters={\"Wealth\": \"wealth\"}\n", |
|
1234 | 1230 | " self.num_agents = n\n", |
1235 | 1231 | "\n", |
1236 | 1232 | " # Create agents\n", |
1237 | | - " for _ in range(self.num_agents):\n", |
1238 | | - " a = MoneyAgent(self)\n", |
| 1233 | + " MoneyAgent.create_agents(model=self, n=n)\n", |
1239 | 1234 | "\n", |
1240 | 1235 | " self.datacollector = mesa.DataCollector(\n", |
1241 | 1236 | " model_reporters={\"Gini\": compute_gini}, agent_reporters={\"Wealth\": \"wealth\"}\n", |
|
1320 | 1315 | " ethnicities = [\"Green\", \"Blue\", \"Mixed\"]\n", |
1321 | 1316 | "\n", |
1322 | 1317 | " # Create agents\n", |
1323 | | - " for _ in range(self.num_agents):\n", |
1324 | | - " a = MoneyAgent(self, self.random.choice(ethnicities))\n", |
| 1318 | + " MoneyAgent.create_agents(model=self, n=n, ethnicity=self.random.choice(ethnicities))\n", |
1325 | 1319 | "\n", |
1326 | 1320 | " self.datacollector = mesa.DataCollector(\n", |
1327 | 1321 | " model_reporters={\"Gini\": compute_gini},\n", |
|
1406 | 1400 | " self.running = True\n", |
1407 | 1401 | "\n", |
1408 | 1402 | " # Create agents\n", |
1409 | | - " for _ in range(self.num_agents):\n", |
1410 | | - " a = MoneyAgent(self)\n", |
| 1403 | + " agents = MoneyAgent.create_agents(model=self, n=n)\n", |
| 1404 | + " # Create x and y positions for agents\n", |
| 1405 | + " x = self.rng.integers(0, self.grid.width, size=(n,))\n", |
| 1406 | + " y = self.rng.integers(0, self.grid.height, size=(n,))\n", |
| 1407 | + " for a, i, j in zip(agents, x, y):\n", |
1411 | 1408 | " # Add the agent to a random grid cell\n", |
1412 | | - " x = self.random.randrange(self.grid.width)\n", |
1413 | | - " y = self.random.randrange(self.grid.height)\n", |
1414 | | - " self.grid.place_agent(a, (x, y))\n", |
| 1409 | + " self.grid.place_agent(a, (i, j))\n", |
1415 | 1410 | "\n", |
1416 | 1411 | " self.datacollector = mesa.DataCollector(\n", |
1417 | 1412 | " model_reporters={\"Gini\": compute_gini},\n", |
|
1902 | 1897 | "name": "python", |
1903 | 1898 | "nbconvert_exporter": "python", |
1904 | 1899 | "pygments_lexer": "ipython3", |
1905 | | - "version": "3.12.5" |
| 1900 | + "version": "3.12.3" |
1906 | 1901 | }, |
1907 | 1902 | "widgets": { |
1908 | 1903 | "state": {}, |
|
0 commit comments