miner_model = Model("MinerBots", 100, 100) class Robot(Agent): def setup(self, model): self.color = (100, 100, 100) self.direction = randint(0, 359) def step(self, model): self.direction += randint(0, 20) - 10 self.forward() def setup(model): model.reset() for x in range(10): model.add_agent(Robot()) def step(model): for ag in model.agents: ag.step(model) miner_model.add_button("Setup", setup) miner_model.add_toggle_button("Go", step) run(miner_model)
def model_setup(model): model.reset() model.Susceptible = 0 model.Infectious = 0 model.Recovered = 0 for person in range(100): model.add_agent(Person()) def model_step(model): for person in model.agents: person.step(model) model.update_plots() epidemic_model = Model("Epidemimodel", 100, 100) epidemic_model.add_button("Setup", model_setup) epidemic_model.add_button("Go", model_step, toggle=True) epidemic_model.line_chart( ["Susceptible", "Infectious", "Recovered"], [(0, 200, 0), (200, 0, 0), (0, 0, 200)] ) epidemic_model.add_checkbox("enable_groups") epidemic_model.add_controller_row() epidemic_model.add_slider("social_distance", 50, 0, 80) epidemic_model.add_controller_row() epidemic_model.add_slider("infection_distance", 15, 0, 40) run(epidemic_model)
# Jump there if new_tile is not None: self.jump_to_tile(new_tile) # Does nothing, if all tiles are occupied def step(self, model): self.move() def setup(model): model.reset() model.initial_bugs = 100 # Create and add agents for i in range(int(model.initial_bugs)): model.add_agent(Bug()) def step(model): # Move all agents for agent in model.agents: agent.step(model) stupid_model = Model("Basic StupidModel (stupid01)", 100, 100, tile_size=5) stupid_model.add_button("setup", setup) stupid_model.add_button("step", step) stupid_model.add_toggle_button("go", step) run(stupid_model)
other.update_visual() self.util = self.utility() def setup(model): model.reset() model.clear_plots() model.total_util = 0 model.movespeed = 0.2 people = set([Person() for i in range(20)]) model.add_agents(people) def step(model): model.total_util = 0 for a in model.agents: a.step(model) model.update_plots() model.remove_destroyed_agents() bnb_model = Model("Bread & butter economy", 50, 50) bnb_model.add_button("Setup", setup) bnb_model.add_button("Step", step) bnb_model.add_button("Go", step, toggle=True) bnb_model.add_controller_row() bnb_model.add_slider("movespeed", 0.1, 0.1, 1) bnb_model.line_chart(["total_util"], [(0, 0, 0)]) bnb_model.agent_line_chart("util") run(bnb_model)