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
Esempio n. 2
0
 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