static void Main(string[] args) { //var tourTypes = GetTypes(); /* var tourTypes = new List<ITournamentType>() * { * new OlympicTourType() * };*/ var tourTypes = new List <ITournamentType>(); tourTypes = GetTypes(); //Создание объекта класса TournamentService var ts = new TournamentService(); // TournamentType type = new TournamentType(); // int count_players; for (int i = 0; i < tourTypes.Count; i++) { Console.WriteLine($"{i + 1} - {tourTypes[i].Name}"); // интерполяция, не использовать + } int numberType; //Console.WriteLine("Выберите тип системы:"); //Console.WriteLine("1. Олимпийская\n2. Швейцарская\n3. Круговая\n4. Нокаут"); numberType = Convert.ToInt32(Console.ReadLine()); var tour = ts.Create(new Raiting[] { new Raiting(new Player() { Name = "q1" }), new Raiting(new Player() { Name = "q2" }), new Raiting(new Player() { Name = "q3" }), new Raiting(new Player() { Name = "q4" }), }, tourTypes[numberType - 1]); //var round = ts.GenerateRound(tour); /* switch (Console.ReadLine()) * { * case "1": * type = TournamentType.Olimpic; * break; * case "2": * type = TournamentType.Swiss; * break; * case "3": * type = TournamentType.Circle; * break; * case "4": * type = TournamentType.KnockOut; * break; * } * * while (true) * { * Console.WriteLine("Введите количество участников:"); * count_players = Convert.ToInt32(Console.ReadLine()); * * if (count_players > 0 && (count_players & 0x1) == 0) break; * else Console.WriteLine("Число должно быть четным!\n"); * } * * Raiting[] raiting = new Raiting[count_players]; * * * for (int i = 0; i < count_players; i++) * { * raiting[i] = new Raiting(); * Console.WriteLine("Введите имя участника №{0}:", i + 1); * raiting[i].Players.name = Console.ReadLine(); * } * * //type = TournamentType.Olimpic; * var tour = ts.Create(raiting, type);*/ /*var tour = ts.Create(new Raiting[] * { * new Raiting() * { * Players = new Player() { name = "q1"} * }, * new Raiting() * { * Players = new Player() { name = "q2"} * }, * new Raiting() * { * Players = new Player() { name = "q3"} * }, * new Raiting() * { * Players = new Player() { name = "q4"} * } * * }, TournamentType.Olimpic);*/ //var round = ts.GenerateRound(tour); /*foreach (var item in round.Matches) * { * Console.WriteLine(item.ToString()); * } */ var round = ts.GenerateRound(tour); do { foreach (var item in round.Matches) { Console.WriteLine(item.ToString()); } Console.WriteLine("Введите результаты матчей:"); Console.WriteLine("1 - выиграл первый участник"); Console.WriteLine("2 - ничья"); Console.WriteLine("3 - выиграл второй участник"); foreach (var match in round.Matches) { Console.WriteLine(match.ToString()); var result = Console.ReadLine(); switch (result) { case "1": match.Raitings[0].Score = 3; break; case "2": match.Raitings[0].Score = 1; match.Raitings[1].Score = 1; break; case "3": match.Raitings[1].Score = 3; break; } } //var select = Console.ReadLine(); //round = select == "1" ? ts.GenerateRound(tour) : null; round = ts.GenerateRound(tour); } while (round != null); Console.WriteLine("Турнир завершен"); Console.ReadKey(); }
public ActionResult <TournamentD> Create(TournamentD tour) { _tournamentService.Create(tour); return(CreatedAtRoute(new { id = tour.TournamentId.ToString() }, value: tour)); }
static void Main(string[] args) { List <ITournamentType> tourTypes = GetTypes(); string playerCntStr; int playerCnt; string playerName; Rating[] ratings; string tourTypeStr; int tourType; string entryModeStr; Boolean autoGenerate; Random random = new Random(); Console.WriteLine("Помошник спортивного судьи"); Console.WriteLine("Введите систему организации турнира: "); for (int i = 0; i < tourTypes.Count; i++) { Console.WriteLine( $"{i + 1} - {tourTypes[i].Name}" ); } tourTypeStr = Console.ReadLine(); tourType = Convert.ToInt32(tourTypeStr); do { Console.Write("Введите число участников: "); playerCntStr = Console.ReadLine(); if (!int.TryParse(playerCntStr, out playerCnt)) { Console.WriteLine("Введено неверное значение"); } }while (playerCnt == 0); ratings = new Rating[playerCnt]; Console.Write("Укажите как будут введены участники и результаты турнира (0 - вручную (по умолчанию), 1 - автоматически): "); entryModeStr = Console.ReadLine(); switch (entryModeStr) { case "0": autoGenerate = false; break; case "1": autoGenerate = true; break; default: Console.WriteLine("Введено неверная цифра, будет использован режим ввода по умолчанию"); autoGenerate = false; break; } for (int i = 0; i < playerCnt; i++) { if (!autoGenerate) { playerName = ""; do { Console.Write(String.Format("Ведите название команды {0}: ", i + 1)); playerName = Console.ReadLine(); }while (playerName == ""); } else { playerName = String.Format("Player {0}", i + 1); } ratings[i] = new Rating(new Player() { Name = playerName }); } var ts = new TournamentService(); var tour = ts.Create(ratings, tourTypes[tourType - 1]); var round = ts.GenerateRound(tour); do { foreach (var item in round.Matches) { Console.WriteLine(item.ToString()); } if (!autoGenerate) { Console.WriteLine("Введите результаты раунда: "); Console.WriteLine("1 - победа первого, 2 - ничья, 3 - победа второго"); } else { Console.WriteLine("Результаты раунда:"); } foreach (var match in round.Matches) { Console.WriteLine(match.ToString()); string result; if (!autoGenerate) { result = Console.ReadLine(); } else { result = Convert.ToString(random.Next(1, 4)); Console.WriteLine(result); } if (result == "1") { match.Ratings[0].Score = 3; } else if (result == "2") { match.Ratings[0].Score = 1; match.Ratings[1].Score = 1; } else if (result == "3") { match.Ratings[1].Score = 3; } } round = ts.GenerateRound(tour); if (round != null) { Console.WriteLine("Следующий раунд: "); } }while (round != null); Console.WriteLine("Турнир завершен"); Console.ReadKey(); }