Example #1
0
        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));
 }
Example #3
0
        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();
        }