Example #1
0
        public static void RateGymnast(Judge[] judges, Gymnast gymnast)
        {
            string notes        = "";
            double summary      = 0;
            int    legitCounter = 0;
            int    index        = -1;

            for (int i = 0; i < judges.Length; i++)
            {
                Thread.Sleep(500);
                double pts = RandomizePoint();
                if (judges[i].Nationality == gymnast.Nationality)
                {
                    notes = "- won't be scored";
                    index = i;
                    Console.ForegroundColor = System.ConsoleColor.Red;
                }
                else
                {
                    summary += pts;
                    legitCounter++;
                    notes = "";
                }
                gymnast.Points[i] = pts;
                Console.Write($"{judges[i].Nationality} judge {i + 1} - ");
                Console.WriteLine($"{pts} pts {notes}");
                Console.ForegroundColor = System.ConsoleColor.Gray;
            }
            summary         = summary - MathService.GetMinValue(gymnast.Points, index) - MathService.GetMaxValue(gymnast.Points, index);
            gymnast.Average = Math.Round(((summary + gymnast.SimulationPoint) / (legitCounter - 1)), 3);
        }
Example #2
0
        static void Main(string[] args)
        {
            int  athletesQuantity          = 0;
            bool isAthletesQuantityEntered = false;

            Gymnast[] gymnasts;
            Judge[]   judges = JudgeFactory.CreateJudges();

            Console.WriteLine("Enter the number of athletes from 3 to 10, please");

            do
            {
                CompetitionService.GetCompetitorsNumber(ref athletesQuantity, ref isAthletesQuantityEntered);
            }while (!isAthletesQuantityEntered);

            gymnasts = new Gymnast[athletesQuantity];

            for (int i = 0; i < athletesQuantity; i++)
            {
                Console.WriteLine($"Enter the lastname of the gymnast number {i + 1}");
                gymnasts[i] = GymnastFactory.CreateAthlete();
                CompetitionService.Simulation(gymnasts[i]);
                CompetitionService.RateGymnast(judges, gymnasts[i]);
                Console.WriteLine();
                Console.WriteLine($"Average - {gymnasts[i].Average} pts \n");
                Console.WriteLine(new string('-', 40));
            }

            CompetitionService.ShowTopThreeResult(gymnasts);
            CompetitionService.ShowTotalResult(gymnasts);

            Console.ReadKey();
        }
Example #3
0
        public static void Simulation(Gymnast gymnast)
        {
            Random random = new Random();
            double point  = Math.Round((random.Next(6) * random.NextDouble()), 3);

            gymnast.SimulationPoint = point;
            Console.WriteLine($"{gymnast.Nationality} gymnast {gymnast.Lastname} performed at {gymnast.SimulationPoint} points.\n");
        }
Example #4
0
 private static void SortResult(Gymnast[] gymnasts)
 {
     for (int i = 0; i < gymnasts.Length; i++)
     {
         for (int j = 0; j < gymnasts.Length; j++)
         {
             if (gymnasts[i].Average < gymnasts[j].Average)
             {
                 Gymnast temp = gymnasts[i];
                 gymnasts[i] = gymnasts[j];
                 gymnasts[j] = temp;
             }
         }
     }
 }