rpg-szi/model.py

42 lines
1.4 KiB
Python

from mesa import Model, Agent
from agent import Player, Box
from mesa.time import RandomActivation
from mesa.space import MultiGrid
#from mesa.datacollection import DataCollector
import random
x = 10
y = 10
possible_contents = ['gold', 'sword', 'shield', 'potion', 'empty']
step_counter = 0
boxes_number = 5
class GameMap(Model):
def __init__(self, x, y, boxes_number):
self.grid = MultiGrid(x, y, False)
self.schedule = RandomActivation(self) # agenci losowo po kolei wykonują swoje akcje
# to jest potrzebne przy założeniu, że potwory chodzą?
self.boxes_number = boxes_number
self.running=True
player = Player(1000, self)
self.schedule.add(player)
x = self.random.randrange(self.grid.width)
y = self.random.randrange(self.grid.height)
self.grid.place_agent(player, (x, y))
for i in range(self.boxes_number):
box = Box(i, self)
self.schedule.add(box)
x = self.random.randrange(self.grid.width)
y = self.random.randrange(self.grid.height)
try:
self.grid.place_agent(box, (x, y))
except:
pass
# self.datacollector=DataCollector #informacje o stanie planszy, pozycja agenta
def step(self):
self.schedule.step()
# self.datacollector.collect(self) #na razie niepotrzebne