Esempio n. 1
0
class BlindAgency:
    def __init__(self, server, prior):
        self._server = server
        self._serverConstants = server.listConstants()

        size = self._serverConstants.getInt('worldsize')
        truePositive = self._serverConstants.getFloat('truepositive')
        trueNegative = self._serverConstants.getFloat('truenegative')

        self.grid = ProbabilityGrid(size, size, prior, truePositive,
                                    trueNegative)
        self.agents = []

        self.agents.append(BlindAgent())
        #self.agents.append(DumbAgent())
        #self.agents.append(DumbAgent())
        # self.agents.append(DumbAgent())

        while True:
            self._takeAction()

    def _takeAction(self):
        tankData = self._server.listFriendlyTanks()

        for i in range(len(self.agents)):
            data = self._server.getSurroundings(i)
            if data != None:
                self.grid.batchUpdate(data.getTopLeftCorner().x,
                                      data.getTopLeftCorner().y,
                                      data.getGrid())

            action = self.agents[i].getAction(tankData[i],
                                              GridWrapper(self.grid))

            if action is not None:
                if 'speed' in action:
                    self._server.setVelocity(i, action['speed'])
                if 'angle' in action:
                    self._server.setTurnRate(i, action['angle'])
                if 'shoot' in action:
                    self._server.shoot(i)
Esempio n. 2
0
class BlindAgency:

	def __init__(self, server, prior):
		self._server = server
		self._serverConstants = server.listConstants()

		size = self._serverConstants.getInt('worldsize')
		truePositive = self._serverConstants.getFloat('truepositive')
		trueNegative = self._serverConstants.getFloat('truenegative')

		self.grid = ProbabilityGrid(size, size, prior, truePositive, trueNegative)
		self.agents = []

		self.agents.append(BlindAgent())
		#self.agents.append(DumbAgent())
		#self.agents.append(DumbAgent())
		# self.agents.append(DumbAgent())

		while True:
			self._takeAction()

	def _takeAction(self):
		tankData = self._server.listFriendlyTanks()

		for i in range(len(self.agents)):
			data = self._server.getSurroundings(i)
			if data != None:
				self.grid.batchUpdate(data.getTopLeftCorner().x, data.getTopLeftCorner().y, data.getGrid())
			
			action = self.agents[i].getAction(tankData[i], GridWrapper(self.grid))

			if action is not None:
				if 'speed' in action:
					self._server.setVelocity(i, action['speed'])
				if 'angle' in action:
					self._server.setTurnRate(i, action['angle'])
				if 'shoot' in action:
					self._server.shoot(i)