def main(WIDTH, HEIGHT, SEARCHERS, RESCUERS, targets=5): manager = mp.Manager() searchm = manager.list() rescuem = manager.list() mazem = manager.list() comq = mp.Queue() m = Maze(WIDTH, HEIGHT, targets) print (type(mazem), type(m.maze)) mazem[:] = m.maze m.maze = mazem display = GNUI(WIDTH, HEIGHT, "Map") display2 = GNUI(WIDTH, HEIGHT, "Maze") display.update(m.getMaze(), []) db = DatabaseAgent("[email protected]", "secret") db.width = WIDTH db.height = HEIGHT time.sleep(1) db.start() time.sleep(1) searchers = mp.Process(target=searchmanager, args=(SEARCHERS, searchm, comq, m)) rescuers = mp.Process(target=rescuemanager, args=(RESCUERS, rescuem, comq, m)) pf = mp.Process(target=pathmanager, args=(comq,)) mothership = mp.Process(target=mothermanager, args=(comq,)) pf.start() mothership.start() searchers.start() rescuers.start() try: for i in range(100000): display.update(db.map.getMap(), list(searchm), list(rescuem)) display2.update(m.getMaze(), list(searchm), list(rescuem)) time.sleep(0.1) if isReady(db.map.getMap(), rescuem): print ("FINISHED!") break except KeyboardInterrupt: pass except Exception, ex: print traceback.format_exc()