def createGame(self, arenaDimensions=[5,5], robotInit=[0,0], envInit=[1,1]): ''' Creates turn based product ''' robotList = [] for i in xrange(self.numRobots): robotList.append( fsmIndiv(arenaDimensions, robotLabelFuction, agentName='R'+str(i), agentAlphabetInput=[['nn',1,1],['ss',1,1],['ee',1,1],['ww',1,1], ['oo',0,0],['ne',1,1],['nw',1,1],['se',1,1],['sw',1,1]], drawTransitionGraph = False, grammarType = 'SP_2', agentType = 'KNOWN')) env = fsmIndiv(arenaDimensions, envLabelFuction, agentName='E0', agentAlphabetInput=[['nn',1,1],['ss',1,1],['ee',1,1],['ww',1,1], ['oo',0,0],['ne',1,1],['nw',1,1],['se',1,1],['sw',1,1]], drawTransitionGraph = False, grammarType = 'SP_2', agentType = 'UNKNOWN', defaultAction = 'oo0') self.turnProduct = fsmTurnProduct([env]+robotList, arenaDimensions) self.gameStateLabels = {} for stateID in self.turnProduct.gameStates.keys(): currLabel = self.turnProduct.generateStateLabels(stateID, self.agentsLabelInitList) self.gameStateLabels[stateID] = currLabel.propositionList return
def initializeGame (self): '''Initialize game parameters and objects''' arenaDimensions = [4,4] # Creating robot agent semi-automata self.robot = fsmIndiv(arenaDimensions, robotLabelFuction, agentName= 'R', agentAlphabetInput=[['nn',1,1],['ss',1,1],['ee',1,1],['ww',1,1],['oo',0,0]]) # Creating env agent semi-automata self.env = fsmIndiv(arenaDimensions, envLabelFuction, agentName='E', agentAlphabetInput=[]) # Generating turn-based product self.gameProduct = fsmTurnProduct([self.robot,self.env], arenaDimensions, drawTransitionGraph=False, labelFunction=gameLabelFunction) # Specifying environment dynamics self.gameProduct.addAgentActions('E', ['oo0']) # Getting transition system parameters self.gameStates, self.gameAlphabet, self.gameTransitions, self.newTransitions = self.gameProduct.getFSA() # Getting labels of all states self.gameStateLabels = {} for stateID in self.gameProduct.gameStates.keys(): self.gameStateLabels[stateID] = self.gameProduct.generateStateLabels(stateID).propositionList return
def createGame(self, arenaDimensions=[5, 5], robotInit=[0, 0], envInit=[1, 1]): ''' Creates turn based product ''' robotList = [] for i in xrange(self.numRobots): robotList.append( fsmIndiv(arenaDimensions, robotLabelFuction, agentName='R' + str(i), agentAlphabetInput=[['nn', 1, 1], ['ss', 1, 1], ['ee', 1, 1], ['ww', 1, 1], ['oo', 0, 0], ['ne', 1, 1], ['nw', 1, 1], ['se', 1, 1], ['sw', 1, 1]], drawTransitionGraph=False, grammarType='SP_2', agentType='KNOWN')) env = fsmIndiv(arenaDimensions, envLabelFuction, agentName='E0', agentAlphabetInput=[['nn', 1, 1], ['ss', 1, 1], ['ee', 1, 1], ['ww', 1, 1], ['oo', 0, 0], ['ne', 1, 1], ['nw', 1, 1], ['se', 1, 1], ['sw', 1, 1]], drawTransitionGraph=False, grammarType='SP_2', agentType='UNKNOWN', defaultAction='oo0') self.turnProduct = fsmTurnProduct([env] + robotList, arenaDimensions) self.gameStateLabels = {} for stateID in self.turnProduct.gameStates.keys(): currLabel = self.turnProduct.generateStateLabels( stateID, self.agentsLabelInitList) self.gameStateLabels[stateID] = currLabel.propositionList return