public void DronSouthTurnLeft()
        {
            dronsToMove.Clear();
            movements.Clear();

            dron = new Dron(flyingArea, 5, 5, Direction.S);

            Movement movement = Movement.L;

            movements.Add(movement);

            DronInit dronToMove = new DronInit(dron, movements);

            dronsToMove.Add(dronToMove);

            Program.MoveAllDrones(dronsToMove);

            Assert.AreEqual(Direction.E, dron.Direction);
        }
        public void DronWestTurnRight()
        {
            dronsToMove.Clear();
            movements.Clear();

            dron = new Dron(flyingArea, 5, 5, Direction.W);

            Movement movement = Movement.R;

            movements.Add(movement);

            DronInit dronToMove = new DronInit(dron, movements);

            dronsToMove.Add(dronToMove);

            Program.MoveAllDrones(dronsToMove);

            Assert.AreEqual(Direction.N, dron.Direction);
        }
Example #3
0
        public void DronSouthhMoveFordward()
        {
            dronsToMove.Clear();
            movements.Clear();

            dron = new Dron(flyingArea, 3, 4, Direction.S);

            Movement movement = Movement.M;

            movements.Add(movement);

            DronInit dronToMove = new DronInit(dron, movements);

            dronsToMove.Add(dronToMove);

            Program.MoveAllDrones(dronsToMove);

            Assert.AreEqual(3, dron.XPosition);
            Assert.AreEqual(3, dron.YPosition);
            Assert.AreEqual(Direction.S, dron.Direction);
        }
Example #4
0
        public void DronWestMoveFordwardOutFlyingArea()
        {
            dronsToMove.Clear();
            movements.Clear();

            dron = new Dron(flyingArea, 0, 4, Direction.W);

            Movement movement = Movement.M;

            movements.Add(movement);

            DronInit dronToMove = new DronInit(dron, movements);

            dronsToMove.Add(dronToMove);

            Program.MoveAllDrones(dronsToMove);

            Assert.AreEqual(0, dron.XPosition);
            Assert.AreEqual(4, dron.YPosition);
            Assert.AreEqual(Direction.W, dron.Direction);
        }
Example #5
0
        /// <summary>
        /// Method to obtain all drones and its movements.
        /// </summary>
        /// <param name="flyingArea">Flying Area. Format: Width Height</param>
        /// <param name="dronesParameters">Drones initial position and movements. Format of each element: InitialPosition|Movements
        ///     - InitialPosition: XAxis YAxis Direction
        ///     - Movements: List of Movements
        ///     - Example: 5 5 S|LMMRM
        /// </param>
        /// <returns></returns>
        public static List <DronInit> ParseDronesParameters(string flyingArea, List <string> dronesParameters)
        {
            List <DronInit> dronsToMove = new List <DronInit>();

            // Get Flying Area
            string[] flyingAreaArray = flyingArea.Split(" ");
            int      width           = Int32.Parse(flyingAreaArray[0]);
            int      height          = Int32.Parse(flyingAreaArray[1]);

            FlyingArea FlyingArea = new FlyingArea(width, height);

            // Get Drones. Start position and list of movements
            foreach (string droneParameter in dronesParameters)
            {
                string[] dronesParametersArray = droneParameter.Split("|");

                string[]  startPositionArray = dronesParametersArray[0].Split(" ");
                int       xAxis = Int32.Parse(startPositionArray[0]);
                int       yAxis = Int32.Parse(startPositionArray[1]);
                Direction dir   = Utils.DirectionMapper(startPositionArray[2]);

                Dron dron = new Dron(FlyingArea, xAxis, yAxis, dir);

                string          movements  = dronesParametersArray[1];
                List <Movement> lMovements = new List <Movement>();

                foreach (char character in movements)
                {
                    lMovements.Add(Utils.MovementMapper(character));
                }

                DronInit dronInit = new DronInit(dron, lMovements);
                dronsToMove.Add(dronInit);
            }

            return(dronsToMove);
        }