Example #1
0
        public Prediction PredictWeather(double day)
        {
            Calculation calculation = new Calculation();
            Prediction prediction = new Prediction(day, "Sequia"); ;

            Coordinates coordinatesFerengi = Ferengi.GetCoordinates(day);
            Coordinates coordinatesVulcano = Vulcano.GetCoordinates(day);
            Coordinates coordinatesBetasoide = Betasoide.GetCoordinates(day);

            if (calculation.IsAlignedWithTheSun(coordinatesFerengi, coordinatesVulcano, coordinatesBetasoide))
            {
                prediction.Weather = "Sequia";
            }
            else
            {
                if (calculation.IsAligned(coordinatesFerengi, coordinatesVulcano, coordinatesBetasoide))
                {
                    prediction.Weather = "Presion y Temperatura Optima";
                }
                else
                {
                    if (calculation.IsSunOutsideTriangle(coordinatesFerengi, coordinatesVulcano, coordinatesBetasoide))
                        prediction.Weather = "Nublado";
                    else
                    {
                        prediction.Weather = "Lluvia";
                    }
                }
            }

            return prediction;
        }
Example #2
0
 public Result PredictWeatherPeriod(double toDay)
 {
     Result result = new Result();
     Calculation calculation = new Calculation();
     for (double i = 0; i < toDay; i++)
     {
         Prediction prediction = new Prediction(Math.Truncate(i), "Sequia");
         Coordinates coordinatesFerengi = Ferengi.GetCoordinates(i);
         Coordinates coordinatesVulcano = Vulcano.GetCoordinates(i);
         Coordinates coordinatesBetasoide = Betasoide.GetCoordinates(i);
         if (calculation.IsAlignedWithTheSun(coordinatesFerengi, coordinatesVulcano, coordinatesBetasoide))
             prediction.Weather = "Sequia";
         else
         {
             if (calculation.IsAligned(coordinatesFerengi, coordinatesVulcano, coordinatesBetasoide))
                 prediction.Weather = "Presion y Temperatura Optima";
             else
             {
                 if (calculation.IsSunOutsideTriangle(coordinatesFerengi, coordinatesVulcano, coordinatesBetasoide))
                     prediction.Weather = "Nublado";
                 else
                 {
                     prediction.Weather = "Lluvia";
                     Rainfall rainfall = new Rainfall
                     {
                         Day = Math.Truncate((double)i),
                         Rain = calculation.getPerimeter(coordinatesFerengi, coordinatesVulcano, coordinatesBetasoide)
                     };
                     Measuring.Add(rainfall);
                     Measuring.Sort((x, y) => x.Rain.CompareTo(y.Rain));
                 }
             }
         }
         result.PredictionsList.Add(prediction);
     }
     return result;
 }