self.expected_salary += 1 def lower_salary(self): self.expected_salary = max(1, self.expected_salary - 1) def do_nothing(self): pass def balance(self): self.round_score = self.inventory['cakes'] + self.inventory['brownies'] + (self.cash * 0.2) self.inventory['cakes'] = 0 self.inventory['brownies'] = 0 Agents.SmartAgent.balance(self) return Agents.Consumer.balance(self) terra = World(10) market = Market.RetailStore(debug=False) terra.make_agents(Plebian, 1000) for item in ["flour", "milk", "eggs"]: for i in range(20): agent = Farm(item) terra.add_agent(agent) for item in ["cakes", "brownies"]: for i in range(20): agent = Factory(item) terra.add_agent(agent) terra.add_market(market) terra.run_sim(10)
def expand(self): self.rate += 1 def downsize(self): self.rate = max(1, self.rate - 1) class Shopper(Agents.Consumer): def __init__(self, utility, mps=0.1): super().__init__(utility, mps) self.income = random.randint(50, 200) self.turns = {0: self.work, 3: self.shop, 4: self.consume} def work(self): self.cash += self.income def consume(self): for item in self.inventory.keys(): self.inventory[item] = 0 market = Market.RetailStore() world = World(5) world.add_market(market) world.make_agents(Shopper, 1000, Utility(UTILITY_FUNCTION)) world.make_agents(Shop, NUMBER_OF_FISH, "fish") world.make_agents(Shop, NUMBER_OF_CHIPS, "chips") world.run_sim(100) world.show_data()