示例#1
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
示例#2
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
示例#3
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
            '''
示例#4
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
      '''