Esempio n. 1
0
        public ClimaResponse Clima(int dia)
        {
            var sistema = BigBang.CrearSistema();

            return(new ClimaResponse
            {
                Dia = dia,
                Clima = sistema.GetClima(dia).Clima
            });
        }
Esempio n. 2
0
        /// <summary>
        /// Años: son años Humanos.
        /// Todos tienen 365 dias. (no se contempla biciestos)
        /// Si el triangulo no contiene al sol, entonces es incierto.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            /*
             * ● El planeta Ferengi se desplaza con una velocidad angular de 1 grados / día en sentido
             * horario.Su distancia con respecto al sol es de 500Km.
             * ● El planeta Betasoide se desplaza con una velocidad angular de 3 grados / día en sentido
             *  horario.Su distancia con respecto al sol es de 2000Km.
             * ● El planeta Vulcano se desplaza con una velocidad angular de 5 grados / día en sentido
             *  antihorario, su distancia con respecto al sol es de 1000Km.
             */

            var sistema = BigBang.CrearSistema();

            // Obtengo el clima de 10 años
            var resultados = new List <Resultado>();

            string[] arrayResult = new string[3650];

            for (int dia = 1; dia < 3650; dia++)
            {
                var clima = sistema.GetClima(dia);
                resultados.Add(clima);
            }

            // Proceso los resultados.
            var periodos = new List <Periodo>();
            var periodo  = new Periodo();

            var climaAnterior = resultados[0].Clima;
            var diaInicio     = resultados[0].Dia;

            for (int i = 0; i < resultados.Count; i++)
            {
                var item = resultados[i];

                if (climaAnterior != item.Clima || i == resultados.Count - 1)
                {
                    periodo.Clima     = climaAnterior;
                    periodo.diaInicio = diaInicio;
                    periodo.diaFin    = i == resultados.Count - 1 ? item.Dia : item.Dia - 1;

                    periodos.Add(periodo);

                    periodo   = new Periodo();
                    diaInicio = item.Dia;
                }

                if (periodo.diaMaxLluvia > 0)
                {
                    periodo.diaMaxLluvia = resultados[periodo.diaMaxLluvia - 1].Lluvia < item.Lluvia ? item.Dia : periodo.diaMaxLluvia;
                }
                else
                {
                    periodo.diaMaxLluvia = item.Lluvia > 0 ? item.Dia : 0;
                }

                climaAnterior = item.Clima;
            }

            var periodosSequia = periodos.Where(x => x.Clima == Constants.Sequia).Count();
            var periodosLluvia = periodos.Where(x => x.Clima == Constants.Lluvia).Count();
            var picoLluvia     = periodos.Where(x => x.Clima == Constants.Lluvia).Select(z => new { Inicio = z.diaInicio, Fin = z.diaFin, Pico = z.diaMaxLluvia }).ToList();
            var periodosOptimo = periodos.Where(x => x.Clima == Constants.Optimo).Count();

            Console.WriteLine(string.Format("Períodos de sequía: {0}", periodosSequia));
            Console.WriteLine(string.Format("Períodos de Lluvia: {0}", periodosLluvia));
            Console.WriteLine(string.Format("Días con pico de lluvia:"));
            foreach (var item in picoLluvia)
            {
                Console.WriteLine(string.Format("   Día inicio lluvia: {0} - Día fin lluvia {1} - Día pico lluvia: {2}", item.Inicio, item.Fin, item.Pico));
            }

            Console.WriteLine(string.Format("Períodos Optimos: {0}", periodosOptimo));
            Console.WriteLine("Presione tecla");
            Console.ReadKey();
        }
Esempio n. 3
0
 public TheUniverse()
 {
     InitializeComponent();
     BigBang.Begin();
 }