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); }
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(); }
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"); }
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; } } } }