Ejemplo n.º 1
0
        /// <summary>
        /// Quando o torneio for começar, embaralha os times e gera a primeira rodada.
        /// </summary>
        public void StartTournamentX1()
        {
            CurrentRound = 1;
            Random        random      = new Random();
            List <Player> playerGames = Players;

            GamesX1 = new List <GameX1>();

            for (int i = 0; i < playerGames.Count; i++)
            {
                int    randomNumber = random.Next(0, playerGames.Count);
                Player aux          = playerGames[i];
                playerGames[i]            = playerGames[randomNumber];
                playerGames[randomNumber] = aux;
            }

            for (int i = 0; i < Players.Count; i = i + 2)
            {
                string tCode = TournamentCodeGenerator.GenarateCodeX1(Title + " - partida " + i, "pass");

                GameX1 aux = new GameX1(playerGames[i], playerGames[i + 1], CurrentRound, false, false, tCode);

                aux.Date = StartDate;
                aux.Obs  = "";

                GamesX1.Add(aux);
                aux = null;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Método para ser executado no final de cada rodada. Define os jogos da próxima rodada ou define o vencedor.
        /// </summary>
        public void EndRoundX1()
        {
            CurrentRound++;
            List <GameX1> gamesAux = new List <GameX1>();

            if (CurrentRound == NumberOfRounds)
            {
                string tCode    = TournamentCodeGenerator.GenarateCodeX1(Title + " - final", "pass");
                GameX1 Champion = new GameX1(GamesX1[0].Winner, GamesX1[1].Winner, CurrentRound, true, false, tCode);

                Champion.Date = StartDate;
                Champion.Obs  = "";

                gamesAux.Add(Champion);

                string tCode1 = TournamentCodeGenerator.GenarateCodeX1(Title + " - Disputa 3", "pass");
                GameX1 Third  = new GameX1(GamesX1[0].Loser, GamesX1[1].Loser, CurrentRound, false, true, tCode1);

                Third.Date = StartDate;
                Third.Obs  = "";

                gamesAux.Add(Third);

                GamesX1 = gamesAux;

                return;
            }

            int numberOfGames = (Games.Count / 2);

            for (int i = 0; i < numberOfGames * 2; i = i + 2)
            {
                string tCode = TournamentCodeGenerator.GenarateCode(Title + " - partida " + i, "pass");
                GameX1 aux   = new GameX1(GamesX1.Where(x => x.Round == CurrentRound - 1).ElementAt(i).Winner, GamesX1.Where(x => x.Round == CurrentRound - 1).ElementAt(i + 1).Winner, CurrentRound, false, false, tCode);

                aux.Date = StartDate;
                aux.Obs  = "";

                gamesAux.Add(aux);
            }

            GamesX1 = gamesAux;
        }