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)
Esempio n. 2
0
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)
Esempio n. 3
0
        # 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)
Esempio n. 4
0
            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)