예제 #1
0
    // Use this for initialization
    void Start()
    {
        player = GameObject.Find("RPlayer").GetComponent <Player> ();
        bob    = GameObject.Find("Bob").GetComponent <Bob> ();
        robo   = GameObject.Find("Robo-Jake").GetComponent <RoboJake> ();
        dogBot = GameObject.Find("DogBot-Bobby").GetComponent <DogBotBobby> ();
        dron   = GameObject.Find("DronAK-1400").GetComponent <Dron> ();
        litus  = GameObject.Find("Litus").GetComponent <Litus> ();
        sharot = GameObject.Find("Sharot").GetComponent <Sharot> ();
        mateo  = GameObject.Find("Mateo Rodriguez").GetComponent <Mateo> ();
        bik    = GameObject.Find("BikKlubber the Merc.").GetComponent <Bik> ();
        laser  = GameObject.Find("Laser Automata").GetComponent <Laser> ();

        weaponR  = GameObject.Find("WeaponRandom").GetComponent <WeaponRandom> ();
        weapon01 = GameObject.Find("WeaponsCode").GetComponent <Weapon01> ();
        weapon02 = GameObject.Find("WeaponsCode").GetComponent <Weapon02> ();
        weapon03 = GameObject.Find("WeaponsCode").GetComponent <Weapon03> ();

        ability01 = GameObject.Find("Abilities").GetComponent <Abilitie01_PlasmaGranade> ();
        ability04 = GameObject.Find("Abilities").GetComponent <Abilitie04_GoldShot> ();

        mainScript      = GameObject.Find("Main Camera").GetComponent <monsterHp> ();
        backgroundB     = GameObject.Find("Ascensor").GetComponent <BackgroundBehavior> ();
        soundEffectsBtn = GameObject.Find("SoundEffectsButtonCode").GetComponent <StopSoundEffectsButton> ();
        BgMusicBtn      = GameObject.Find("BgMusicButtonCode").GetComponent <StopBgMusicButton> ();
        offlineIncome   = GameObject.Find("OfflineIncome").GetComponent <OfflineIncome> ();

        variablesToLoad();
    }
예제 #2
0
        public async Task Operate()
        {
            var dronesFiles = _fileDronDelivery.GetFiles();
            int dronNumber  = 1;

            foreach (var dronFile in dronesFiles)
            {
                var dron = new Dron
                {
                    Id = dronNumber
                };

                _fileDronDelivery.SetParameters(dronFile, dron.FileNameResult);

                try
                {
                    var commands = await _fileDronDelivery.ReadFile();

                    var result = Movements(commands, dron);

                    await _fileDronDelivery.WriteFile(result);

                    dronNumber++;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
예제 #3
0
        private void SetDronInitialPosition(string[] instruction)
        {
            int  x;
            int  y;
            char direction;

            if (!Int32.TryParse(instruction[0], out x))
            {
                throw new FormatException("Error parsing X position of Dron paremeter, please introduce a valid number.");
            }

            if (!Int32.TryParse(instruction[1], out y))
            {
                throw new FormatException("Error parsing Y position of Dron paremeter, please introduce a valid number.");
            }

            if (!char.TryParse(instruction[2], out direction))
            {
                throw new FormatException("Error parsing Direction of Dron paremeter, please introduce a valid direction (char).");
            }

            if (x <= _forest.Width && y <= _forest.High && _cardinalPoints.Contains(direction))
            {
                _dron = new Dron(x, y, direction, _forest);
            }
            else
            {
                throw new FormatException("X position and Y position can't be hight than forest dimensions and direction must be one cardinal point");
            }
        }
예제 #4
0
        private static void InicializandoMundo()
        {
            int         num          = 20;
            int         cobertura    = 10;
            Propietario propietario1 = new Propietario();

            propietario1.Id        = 1;
            propietario1.Nombre    = "Pepe Perez";
            propietario1.CreatedAt = DateTime.UtcNow;
            Propietario propietario2 = propietario1;
            List <Dron> drones       = new List <Dron>();

            for (int index = 1; index <= num; ++index)
            {
                List <Dron> dronList = drones;
                Dron        dron     = new Dron();
                dron.Id               = index;
                dron.Nombre           = "Dron" + index.ToString("00");
                dron.CargaActual      = 0;
                dron.CoordenadaActual = new Coordenada();
                dron.CreatedAt        = DateTime.UtcNow;
                dronList.Add(dron);
            }
            Program.Mundo = new Mundo(new Local("Su Corrientazo A Domicilio", cobertura, drones, propietario2));
        }
예제 #5
0
        public Dron ProcessStep(Dron dron)
        {
            switch (dron.PuntoCardinal)
            {
            case Dron.Orientacion.N:
                dron.YPosition = dron.YPosition + 1;
                Console.WriteLine("Avanzo en Y " + "(" + dron.XPosition + "," + dron.YPosition + ")");
                break;

            case Dron.Orientacion.E:
                dron.XPosition = dron.XPosition + 1;
                Console.WriteLine("Avanzo en X " + "(" + dron.XPosition + "," + dron.YPosition + ")");
                break;

            case Dron.Orientacion.S:
                dron.YPosition = dron.YPosition - 1;
                Console.WriteLine("Retrocedo en Y " + "(" + dron.XPosition + "," + dron.YPosition + ")");
                break;

            case Dron.Orientacion.W:
                dron.XPosition = dron.XPosition - 1;
                Console.WriteLine("Retrocedo en X " + "(" + dron.XPosition + "," + dron.YPosition + ")");
                break;
            }
            return(dron);
        }
예제 #6
0
        /// <summary>
        /// Carga variables de aplicación, crea elementos globales.
        /// </summary>
        public static void AlistaFormulario()
        {
            try
            {
                //CARGA VARIABLE DE APP
                var builder = new ConfigurationBuilder()
                              .SetBasePath(Directory.GetCurrentDirectory())
                              .AddJsonFile("AppSettings.json", optional: false);

                IConfiguration config = builder.Build();
                int            aux    = 0;

                rutaBase              = config.GetSection("AppSettings").GetSection("RutaBase").Value;
                maximosViajesPorDron  = int.TryParse(config.GetSection("AppSettings").GetSection("MaximosViajesPorDron").Value, out aux) == true ? aux : 3;
                maximoNumeroDeCuadras = int.TryParse(config.GetSection("AppSettings").GetSection("MaximoNumeroDeCuadras").Value, out aux) == true ? aux : 10;
                maximoDrones          = int.TryParse(config.GetSection("AppSettings").GetSection("MaximoDrones").Value, out aux) == true ? aux : 20;

                //CREA ELEMENTOS
                Dron d = new Dron();
                for (int i = 0; i < maximoDrones; i++)
                {
                    d        = new Dron();
                    d.nombre = (i + 1).ToString();
                    nombres.Add((i + 1).ToString());
                    drones.Add(d);
                }
            }
            catch (Exception)
            {
                throw new Exception("Ha ocurrido un error al alistar la aplicación.");
            }
        }
예제 #7
0
        public string[] Movements(string[] commands, Dron dron)
        {
            List <string> result = new List <string>();

            foreach (var command in commands)
            {
                foreach (var letter in command)
                {
                    switch (letter)
                    {
                    case 'A':
                        DirectionEnumHelper.GoAHead(ref dron);
                        break;

                    case 'I':
                        dron.Coordinates.Direction =
                            DirectionEnumHelper.NextDirection(false, dron.Coordinates.Direction);
                        break;

                    case 'D':
                        dron.Coordinates.Direction =
                            DirectionEnumHelper.NextDirection(true, dron.Coordinates.Direction);
                        break;

                    default:
                        break;
                    }
                }
                result.Add(dron.DeliveryResult);
            }

            return(result.ToArray());
        }
예제 #8
0
        public void Moving_Out_Of_Range_Throws_Exception(string instruction)
        {
            //Arrange
            var dron = new Dron(0, 0, 'S', _forest);

            //Act & Assert
            Assert.Throws <GameException>(() => dron.ExecuteInstructions(instruction));
        }
예제 #9
0
        public void Test_Eliminar_Arma_No_Cargada()
        {
            bool retorno;

            Armamento arma = new Dron("Blablabla", Armamento.ETipo.dron, "americano", 62, 30);

            retorno = Inventario.Armas - arma;
        }
예제 #10
0
        public void Dron_Move_L_Dron_1_1_N_Area_5_5_Returned_Direction_W()
        {
            var dron = new Dron("1 1 N");
            var area = new Area("5 5");

            dron.Move("L", area);

            Assert.AreEqual("W", dron.Direction);
        }
예제 #11
0
        public void Moving_East_As_Expected()
        {
            //Arrange
            var dron = new Dron(1, 1, 'E', _forest);

            //Act
            dron.ExecuteInstructions("M");

            //Assert
            Assert.Equal <int>(2, dron.X);
        }
예제 #12
0
        public void Moving_South_As_Expected()
        {
            //Arrange
            var dron = new Dron(0, 1, 'S', _forest);

            //Act
            dron.ExecuteInstructions("M");

            //Assert
            Assert.Equal <int>(0, dron.Y);
        }
예제 #13
0
        public void maxNumberLaserConnons_NumberConnos4_ErrorNumberConnonsCalculated()
        {
            Dron resistanceDron = new Dron();
            int  numberConnons  = 0;
            int  expected       = 4;

            int[]  A       = { 1, 6, 4, 5, 4, 5, 1, 2, 3, 4, 7, 2 };
            string message = "";

            numberConnons = resistanceDron.maxNumberLaserCannons(A);

            message = String.Format("Corretly maximum connons number -> expected: {0}, actual: {1}", expected.ToString(), numberConnons.ToString());

            Assert.AreNotEqual(expected, numberConnons, message);
        }
예제 #14
0
        public static List<Enemy> ProcedureBuild(Texture2D texture, List<Enemy> list, Vector2 location,
            Texture2D projectileTexture, GameTime gameTime)
        {
            if (gameTime.TotalGameTime.TotalMinutes == 1) listLimit = 0;
            spawnTimer++;
            if (gameTime.TotalGameTime.TotalMinutes < 1)
            {
                if (spawnTimer > 10)
                {
                    listLimit = list.Count();
                    if (listLimit < 150)
                    {
                        var nextDrone = new Dron(texture, projectileTexture);

                        if (Math.Sqrt((nextDrone.Location.X - location.X)*(nextDrone.Location.X - location.X) +
                                      (nextDrone.Location.Y - location.Y)*(nextDrone.Location.Y - location.Y)) > 1400)
                        {
                            list.Add(nextDrone);
                            listLimit++;
                        }
                    }
                    spawnTimer = 0;
                }
            }
            else
            {
                if (spawnTimer > 10)
                {
                    listLimit=list.Count();
                    if (listLimit < 50)
                    {
                        var nextInvader = new Invader(texture, projectileTexture);

                        if (Math.Sqrt((nextInvader.Location.X - location.X)*(nextInvader.Location.X - location.X) +
                                      (nextInvader.Location.Y - location.Y)*(nextInvader.Location.Y - location.Y)) >
                            1400)
                        {
                            list.Add(nextInvader);
                            listLimit++;
                        }
                    }
                    spawnTimer = 0;
                }
            }
            return list;
        }
        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);
        }
예제 #17
0
        public void TestGeneracionDeInforme()
        {
            //CARGA VARIABLE DE APP
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("AppSettings.json", optional: false);

            IConfiguration config = builder.Build();

            int    maximosViajesPorDron = 1;
            int    maxCuadras           = 8;
            string rutaBase             = config.GetSection("AppSettings").GetSection("RutaBase").Value;;
            string movimientosTest      = "ADAIAD";

            Entrega entregaTest = new Entrega();

            entregaTest.movimientos = movimientosTest;
            Dron d1 = new Dron();

            d1.nombre = "1";

            List <Entrega> rutaTest = new List <Entrega>();

            rutaTest.Add(entregaTest);

            d1.ruta = rutaTest;
            GeneradorDeInformeCartesiano gi = new GeneradorDeInformeCartesiano(rutaBase);
            CalculadorDeViajeCartesiano  calculadorDeViaje = new CalculadorDeViajeCartesiano();

            calculadorDeViaje.coordenadaInicial = new CoordenadaCartesiana(0, 0, maxCuadras, Data.Enumeraciones.PuntosCardinales.Norte);

            List <CoordenadaCartesiana> objetivosx = new List <CoordenadaCartesiana>();

            foreach (Entrega e in d1.ruta.Take(maximosViajesPorDron))
            {
                calculadorDeViaje.entrega           = e;
                calculadorDeViaje.coordenadaInicial = calculadorDeViaje.calcularCoordenadaFinal();
                objetivosx.Add(calculadorDeViaje.coordenadaInicial);
            }
            d1.objetivos = objetivosx;
            gi.GenerarInforme(d1);
        }
예제 #18
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);
        }
예제 #19
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);
        }
예제 #20
0
        public Dron CalcularRuta(char[] instructions, Dron dron, int range)
        {
            //string initial = "N";
            char[] allowed = { 'A', 'I', 'D' };

            if (instructions.Any(c => !allowed.Contains(c)))
            {
                dron.error = "Caracter no permitido";
                return(dron);
            }

            foreach (var item in instructions)
            {
                Console.WriteLine("Procesando " + item);

                if (item.ToString() == "A")
                {
                    dron = ProcessStep(dron);
                }
                else if (item.ToString() == "I" || item.ToString() == "D")
                {
                    dron.PuntoCardinal = ProcessOrientationChange(dron.PuntoCardinal, item.ToString());
                    Console.WriteLine("Cambio a sentido " + dron.PuntoCardinal);
                }

                else
                {
                    Console.WriteLine("Not valid instruction");
                }
            }

            if (dron.XPosition > range || dron.XPosition < -(range) || dron.YPosition > range || dron.YPosition < -(range))
            {
                string error = "Ruta fuera del rango permitido en punto (" + dron.XPosition + "," + dron.YPosition + ")";
                dron.error = error;
            }


            return(dron);
        }
        public static void GoAHead(ref Dron dron)
        {
            if (dron.Coordinates.Direction == DirectionEnum.NORTH)
            {
                dron.Coordinates.YAxis++;
            }

            else if (dron.Coordinates.Direction == DirectionEnum.WEST)
            {
                dron.Coordinates.XAxis--;
            }

            else if (dron.Coordinates.Direction == DirectionEnum.SOUTH)
            {
                dron.Coordinates.YAxis--;
            }

            else if (dron.Coordinates.Direction == DirectionEnum.EAST)
            {
                dron.Coordinates.XAxis++;
            }
        }
예제 #22
0
        public void ValidateRightDronMovements()
        {
            // Arrange
            var dron = new Dron {
                Id = 1
            };
            var commands = new string[] { "AAAAIAA", "AIIAADA", "IDDADAA" };

            string[] result = { "(-2, 4) dirección WEST", "(-1, 3) dirección SOUTH", "(-2, 5) dirección NORTH" };
            int      cont   = 0;

            var service = new DronHandler();

            // Act
            var movements = service.Movements(commands, dron);

            // Assert
            movements.ToList().ForEach(movement =>
            {
                Assert.AreEqual(result[cont], movement);
                cont++;
            });
        }
예제 #23
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);
        }
예제 #24
0
 /// <summary>
 /// Constructor to initialize the dron and its movements
 /// </summary>
 /// <param name="dron"></param>
 /// <param name="movements"></param>
 public DronInit(Dron dron, List <Movement> movements)
 {
     Dron      = dron;
     Movements = movements;
 }
예제 #25
0
        public Boolean CreateOutputFile(int iteration, Dron dron, string outpuPath)
        {
            string outputNumber;
            string direccion = "";


            if (iteration < 10)
            {
                outputNumber = "0" + iteration;
            }
            else
            {
                outputNumber = iteration.ToString();
            }


            using StreamWriter outputFile = new StreamWriter(outpuPath, append: true);


            if (dron.error != null)
            {
                outputFile.WriteLine(dron.error);
                Console.WriteLine(dron.error);
                outputFile.Close();
                return(false);
            }


            switch (dron.PuntoCardinal)
            {
            case Dron.Orientacion.N:
                direccion = "Norte";
                break;

            case Dron.Orientacion.E:
                direccion = "Oriente";
                break;

            case Dron.Orientacion.S:
                direccion = "Sur";
                break;

            case Dron.Orientacion.W:
                direccion = "Oeste";
                break;
            }



            Console.WriteLine("Punto Cardinal: " + dron.PuntoCardinal);
            Console.WriteLine("Posicion en X: " + dron.XPosition);
            Console.WriteLine("Posicion en Y: " + dron.YPosition);
            //outpuPath = "C:\\Users\\suaosc01\\source\\repos\\Corrientazo\\Corrientazo\\bin\\Debug\\netcoreapp3.1\\out" + outputNumber + ".txt";



            //outputFile.WriteLineAsync("(" + dron.XPosition + "," + dron.YPosition + ") direccion " + direccion);
            outputFile.WriteLine("(" + dron.XPosition + "," + dron.YPosition + ") direccion " + direccion);
            outputFile.Close();

            return(true);
        }
예제 #26
0
 /// <summary>
 /// Constructor to initialize Dron property.
 /// </summary>
 /// <param name="dron">Dron to turn left.</param>
 public TurnLeft(Dron dron)
 {
     Dron = dron;
 }
예제 #27
0
 void Start()
 {
     dron       = GetComponentInParent <Dron>();
     propellers = GameObject.FindGameObjectsWithTag("Propeller");
 }
예제 #28
0
    void Start()
    {
        rb = GetComponent <Rigidbody>();

        dron = GetComponent <Dron>();
    }
예제 #29
0
        static void Main(string[] args)
        {
            int    cuadras = Int32.Parse(args[0]);
            int    almuerzos = Int32.Parse(args[1]);
            string inputNumber, inputFileName, inputPath, outputPath, outputFileName;

            bool rutaValida;



            Console.WriteLine(args[0]);



            Ruta        ruta        = new Ruta();
            FileHandler fileHandler = new FileHandler();


            for (int i = 0; i < 20; i++)
            {
                Dron dron = new Dron(0, 0, 0);

                if ((i) < 9)
                {
                    inputNumber = "0" + (i + 1);
                }
                else
                {
                    inputNumber = (i + 1).ToString();
                }
                inputFileName  = "in" + inputNumber + ".txt";
                outputFileName = "out" + inputNumber + ".txt";
                inputPath      = Path.Combine(Environment.CurrentDirectory, inputFileName);
                outputPath     = Path.Combine(Environment.CurrentDirectory, outputFileName);
                if (File.Exists(outputPath))
                {
                    File.Delete(outputPath);
                }
                using StreamWriter outputFile = new StreamWriter(outputPath, append: true);
                outputFile.WriteLine("== Reporte de Entregas ==");
                outputFile.Close();

                using (var reader = new StreamReader(inputPath))
                {
                    string line;
                    while ((line = reader.ReadLine()) != null)
                    {
                        if (File.ReadAllLines(inputPath).Length != almuerzos)
                        {
                            using StreamWriter outputFile2 = new StreamWriter(outputPath, append: true);
                            outputFile2.WriteLine("La cantidad de almuerzos no corresponde a la capacidad del restaurante");
                            outputFile2.Close();
                            break;
                        }



                        Console.WriteLine(line);
                        char[] line2 = line.ToCharArray();
                        dron = ruta.CalcularRuta(line2, dron, cuadras);

                        rutaValida = fileHandler.CreateOutputFile(i + 1, dron, outputPath);
                        if (rutaValida == false)
                        {
                            break;
                        }



                        Console.WriteLine("Punto Cardinal: " + dron.PuntoCardinal);
                        Console.WriteLine("Posicion en X: " + dron.XPosition);
                        Console.WriteLine("Posicion en Y: " + dron.YPosition);
                        outputFile.Close();
                    }
                }
            }
        }
예제 #30
0
 /// <summary>
 /// Constructor to initialize Dron property.
 /// </summary>
 /// <param name="dron">Dron to turn right.</param>
 public TurnRight(Dron dron)
 {
     Dron = dron;
 }
예제 #31
0
 public void Dron_Constructor_X_1_Returned_1()
 {
     var dron = new Dron(1, 1,"E");
     var actual = dron.X;
     Assert.AreEqual(1, actual);
 }
예제 #32
0
        public void Dron_Move_R_Dron_1_1_W_Area_5_5_Returned_Direction_N()
        {
            var dron = new Dron("1 1 W");
            var area = new Area("5 5");

            dron.Move("R", area);

            Assert.AreEqual("N", dron.Direction);
        }
예제 #33
0
 /// <summary>
 /// Constructor to initialize Dron property.
 /// </summary>
 /// <param name="dron">Dron to move fordward.</param>
 public MoveFordward(Dron dron)
 {
     Dron = dron;
 }