예제 #1
0
    def testNewCoordinatesSouthWest(self):
        coordinates = Coordinates(STANDARD_X_COORDINATE, STANDARD_Y_COORDINATE)
        newCoordinate = coordinates.newCoordinates(Direction.SouthWest)

        self.assertEqual(newCoordinate.x, EXPECTED_X_COORDINATE_SW_MOVEMENT,
                         "Should have decremented 'x'")
        self.assertEqual(newCoordinate.y, EXPECTED_Y_COORDINATE_SW_MOVEMENT,
                         "Should have incremented 'y'")
예제 #2
0
    def generateAdjacentCoordinates(
            self, centerCoordinates: Coordinates) -> LRScanCoordinatesList:

        coordinatesList: LRScanCoordinatesList = LRScanCoordinatesList([])

        for direction in Direction:
            self.logger.debug(f'{direction}')
            newCoordinates: Coordinates = centerCoordinates.newCoordinates(
                direction)
            if newCoordinates.valid() is True:

                lrScanCoordinates: LRScanCoordinates = LRScanCoordinates()
                lrScanCoordinates.coordinates = newCoordinates
                lrScanCoordinates.direction = direction

                coordinatesList.append(lrScanCoordinates)

        return coordinatesList
    def _evade(self, currentLocation: Coordinates) -> Coordinates:
        """
        Move enemy around to avoid torpedoes

        Args:
            currentLocation:

        Returns:  New random coordinates
        """
        while True:
            pDirection: Direction = self.__randomDirection_()
            newCoordinates: Coordinates = currentLocation.newCoordinates(
                pDirection)

            self._baseEnemyMediatorLogger.debug(
                f"Random direction={pDirection.name} {currentLocation=} {newCoordinates=}"
            )
            if newCoordinates.valid():
                break
        return newCoordinates
예제 #4
0
    def testNewCoordinatesEast(self):
        coordinates = Coordinates(STANDARD_X_COORDINATE, STANDARD_Y_COORDINATE)
        newCoordinate = coordinates.newCoordinates(Direction.East)

        self.assertEqual(newCoordinate.x, EXPECTED_X_COORDINATE_MOVEMENT_EAST,
                         "Should have incremented 'x'")
예제 #5
0
    def testNewCoordinatesSouth(self):
        coordinates = Coordinates(STANDARD_X_COORDINATE, STANDARD_Y_COORDINATE)
        newCoordinate = coordinates.newCoordinates(Direction.South)

        self.assertEqual(newCoordinate.y, EXPECTED_Y_COORDINATE_MOVEMENT_SOUTH,
                         "Should have incremented 'y'")