def __init__(self): # environment parameters self.world = WorldMap() # number of defenders and intruders self.dcount = Config.DEFENDER_COUNT self.icount = Config.INTRUDER_COUNT self.lock = Value('i', 1) self.episode_count = Value('i', 0) self.init_dstates = [] self.init_istates = [] for d in range(self.dcount): self.init_dstates.append((-5+12*d, 7-3*d, 0)) for i in range(self.icount): self.init_istates.append((5-2*i, 10+i, 0)) self.dstates = Array(state_structure, self.init_dstates) self.istates = Array(state_structure, self.init_istates) self.done = Value('i', 0) # defenders and intruders self.defenders = [] # all the defender objectives self.intruders = [] for i in range(self.icount): self.intruders.append(ProcessIntruder(self, i, self.istates[i], self.episode_count)) self.intruders[i].daemon = True for d in range(self.dcount): self.defenders.append(ProcessDefender(self, d, self.dstates[d], self.episode_count)) self.defenders[d].daemon = True
def __init__(self, propsfile): self.canvas = Tk() self.props = json.load(open(propsfile)) self.worldMap = WorldMap(propsfile) self.wg = WorldGrid(self.canvas, self.props, self.worldMap) self.wg.registerCallBack(self.processEvent) self.robot = Robot(self.props, self.worldMap) self.robot.registerSenseCallBack(self.sense) self.robot.registerMoveCallBack(self.move) self.rRow = -1 self.rCol = -1 self.randomizeRobotPosition() self.robot.sense() self.shadeSquares()
import time import sys import random from PyQt5.QtWidgets import QApplication sys.path.insert(0, ".") from WorldMap import WorldMap from WorldUI import WorldUI from WorldUnits import UnitOrganic from WorldProtocols import CreateUnit if __name__ == "__main__": app = QApplication(sys.argv) wmap = WorldMap(5, 5, "#000") wmap.append_protocol(CreateUnit(2, 2, UnitOrganic())) wui = WorldUI(wmap) app.exec_()