def __init__(self, worldfile): self.walls = [] self.moving_obstacles = [] self.initset = False envin = {} envin["dimensions"] = self.dimensions envin["wall"] = self.wall envin["initialRobotLoc"] = self.initialRobotLocation envin["initialRobotLocation"] = self.initialRobotLocation envin["movingObstacle"] = self.movingObstacle parseFile(worldfile, envin) if not self.initset: self.init = self.width/2.0, self.height/2.0, 0.0
def __init__(self, worldfile): self.walls = [] self.moving_obstacles = [] self.initset = False envin = {} envin["dimensions"] = self.dimensions envin["wall"] = self.wall envin["initialRobotLoc"] = self.initialRobotLocation envin["initialRobotLocation"] = self.initialRobotLocation envin["movingObstacle"] = self.movingObstacle parseFile(worldfile, envin) if not self.initset: self.init = self.width / 2.0, self.height / 2.0, 0.0
def __init__(self, infile, reload): self.file = infile if len(self.file) == 0: raise CancelGUIAction self.parent = app.soar self.brainStarted = False envin = self.parent.namespace # pop off the functions that are defined in the brain file # (in case we're loading a new brain file that doesn't define them all) for name in ["setup", "brainStart", "step", "brainStop", "shutdown"]: if envin.has_key(name): envin.pop(name) if not reload: self.clearmodules(envin) try: parseFile(self.file, envin) except: sys.stderr.write( "\nError loading brain: this brain may have a bug, or may need to be loaded after a robot is selected. \n" ) raise try: self.setup = self.makewrapper( envin["setup"], "\nError running setup function. Brain file may have a bug, or brain may need to be loaded after simulator or robot is loaded.\n" ) except: self.setup = skip def brainStartedFalse(): self.brainStarted = False def brainStartedTrue(): self.brainStarted = True def checkStarted(): if not self.brainStarted: self.startFn() try: self.stop = self.makewrapper( envin["brainStop"], "\nError running stopBrain function.\n", afterfunc=brainStartedFalse) except: self.stop = brainStartedFalse try: self.start = skip self.startFn = self.makewrapper( envin["brainStart"], "\nError running startBrain function.\n", afterfunc=brainStartedTrue) except: self.startFn = brainStartedTrue try: self.shutdown = self.makewrapper( envin["shutdown"], "\nError running shutdown function.\n") except: self.shutdown = skip try: self.braindestroy = envin["destroy"] except: self.braindestroy = skip if 'step' in envin: envstep = self.makewrapper(envin["step"], "\nError running step function.\n", beforefunc=checkStarted) if envstep.func_code.co_argcount == 0: self.step = lambda dt: envstep() elif envstep.func_code.co_argcount == 1: self.step = envstep else: self.step = checkStarted '''
def __init__(self, infile, reload): self.file = infile if len(self.file) == 0: raise CancelGUIAction self.parent = app.soar self.brainStarted = False envin = self.parent.namespace # pop off the functions that are defined in the brain file # (in case we're loading a new brain file that doesn't define them all) for name in ["setup", "brainStart", "step", "brainStop", "shutdown"]: if envin.has_key(name): envin.pop(name) if not reload: self.clearmodules(envin) try: parseFile(self.file, envin) except: sys.stderr.write("\nError loading brain: this brain may have a bug, or may need to be loaded after a robot is selected. \n"); raise try: self.setup = self.makewrapper(envin["setup"], "\nError running setup function. Brain file may have a bug, or brain may need to be loaded after simulator or robot is loaded.\n") except: self.setup = skip def brainStartedFalse(): self.brainStarted = False def brainStartedTrue(): self.brainStarted = True def checkStarted(): if not self.brainStarted: self.startFn() try: self.stop = self.makewrapper(envin["brainStop"], "\nError running stopBrain function.\n", afterfunc=brainStartedFalse) except: self.stop = brainStartedFalse try: self.start = skip self.startFn = self.makewrapper(envin["brainStart"], "\nError running startBrain function.\n", afterfunc=brainStartedTrue) except: self.startFn = brainStartedTrue try: self.shutdown = self.makewrapper(envin["shutdown"], "\nError running shutdown function.\n"); except: self.shutdown = skip try: self.braindestroy = envin["destroy"] except: self.braindestroy = skip if 'step' in envin: envstep = self.makewrapper(envin["step"], "\nError running step function.\n", beforefunc=checkStarted) if envstep.func_code.co_argcount == 0: self.step = lambda dt: envstep() elif envstep.func_code.co_argcount == 1: self.step = envstep else: self.step = checkStarted '''