class MarioAgent(Agent): def __init__(self): self.state = INIT def agent_message(self, inMessage): msg = pickle.loads(inMessage) action = msg["cmd"] if self.state == INIT and action == ActionInit: # if at the very begining, init everything self.agent = ModelAgent() self.agent.setParam(epsilon=msg["epsilon"], pseudoReward=msg["pseudoReward"], type=msg["type"]) self.state = RUN print "init" elif self.state == RUN and action == ActionStop: filename = GetFileName(self.agent) saveObj(self.agent, filename) self.state = INIT print "run" elif action == ActionKill: filename = GetFileName(self.agent) filename = filename + ".bak" saveObj(self.agent, filename) exit() else: print "current state: ", self.state print "action: ", action assert 0 def agent_init(self, taskSpecString): return self.agent.agent_init(taskSpecString) def agent_start(self, obs): return self.agent.agent_start(obs) def agent_step(self, reward, obs): return self.agent.agent_step(reward, obs) def agent_end(self, reward): return self.agent.agent_end(reward) def agent_cleanup(self): pass def agent_freeze(self): pass
def agent_message(self, inMessage): msg = pickle.loads(inMessage) action = msg["cmd"] if self.state == INIT and action == ActionInit: # if at the very begining, init everything self.agent = ModelAgent() self.agent.setParam(epsilon=msg["epsilon"], pseudoReward=msg["pseudoReward"], type=msg["type"]) self.state = RUN print "init" elif self.state == RUN and action == ActionStop: filename = GetFileName(self.agent) saveObj(self.agent, filename) self.state = INIT print "run" elif action == ActionKill: filename = GetFileName(self.agent) filename = filename + ".bak" saveObj(self.agent, filename) exit() else: print "current state: ", self.state print "action: ", action assert 0