Esempio n. 1
0
        } //END

        private void setChampTournRankingsTeamIndexes(Team[] teamsArray)
        {
            //TEMP TOURNAMENT ARRAYS
            //ORDER - CONFERENCE INDEX
            int[] arrayIntRanked32IndexesForConfChampsIndexes = new int[appResources.getLengthOfConferenceNames()];
            //CONFERENCE INDEX - RATING
            double[] arrayDouble32ConfChampRatings = new double[appResources.getLengthOfConferenceNames()];

            //INDEX - TEAM INDEX
            int[] arrayInt64ChampTournIndexes = new int[64];
            //INDEX - RATING
            double[] arrayDouble64ChampTournRatings = new double[64];
            //RANK - TEAM INDEX
            int[] arrayIntRanked64IndexesForChampTournIndexes = new int[64];

            //INDEX - TEAM INDEX
            int[] arrayInt68ChampTournIndexes = new int[68];
            //INDEX - RATING
            double[] arrayDouble68ChampTournRatings = new double[68];
            //RANK TEAM INDEX
            int[] arrayIntRanked68IndexesForChampTournIndexes = new int[68];

            //CHAMPIONSHIP TOURNAMENT
            //RANK - TEAM INDEX
            int[] arrayIntRanked64ChampTournIndexes = new int[64];
            //RANK - SEED
            int[] arrayIntRanked64ChampTournSeeds = new int[64];
            //RANK - REGION
            string[] arrayStringRanked64ChampTournRegions = new string[64];

            //TEAM RANKS INDEXES
            //RANK - TEAM INDEX
            int[] arrayIntRanked353TeamIndexes = new int[appResources.getLengthOfTeamNames()];

            //SEEDED PLAY IN TEAMS
            int[] arrayIntSeededPlayInIndexes = new int[] { 0, 1, 4, 5 };

            //FOUND INDEX VARIABLE
            int foundIndex = 0;

            //TEAM INDEX VARIABLE
            int rankIndex = 0;

            //IF RANKINGS NOT UPDATED
            //UPDATE RANKINGS
            if (tournamentContainer.getRankingsUpdated() == false)
            {
                updateRankings(teamsArray);
            } //END IF

            //RANK TEAMS

            //TEAM RANKS INDEXES
            Array.Copy(getOrderIndexes(tournamentContainer.get353Rankings(), appResources.getLengthOfTeamNames()),
                       arrayIntRanked353TeamIndexes,
                       appResources.getLengthOfTeamNames());

            //INITIALIZE VALUES
            //(so indexOf doesn't find garbage)
            for (int index = 0; index < arrayInt68ChampTournIndexes.Length; index++)
            {
                //INDEX - TEAM INDEX
                arrayInt68ChampTournIndexes[index] = -1;
            }//END FOR

            //SELECT CHAMPIONSHIP TOURNAMENT PARTICIPANTS--------------------------

            //GET CONFERENCE RATINGS

            //FOR ALL CONFERENCES
            for (int conferenceIndex = 0; conferenceIndex < appResources.getLengthOfConferenceNames(); conferenceIndex++)
            {
                //CONFERENCE INDEX - RATING
                arrayDouble32ConfChampRatings[conferenceIndex] =
                    tournamentContainer.get353Rankings()[tournamentContainer.get32ConfChampsIndexes()[conferenceIndex]];
            } //END FOR

            //CALCULATE ORDER

            //ORDER CONFERENCE CHAMPIONS
            Array.Copy(getOrderIndexes(arrayDouble32ConfChampRatings, arrayDouble32ConfChampRatings.Length),
                       arrayIntRanked32IndexesForConfChampsIndexes,
                       arrayIntRanked32IndexesForConfChampsIndexes.Length);

            //ADD CONFERENCE CHAMPIONS

            //FOR ALL CONFERENCES
            for (int conferenceIndex = 0; conferenceIndex < appResources.getLengthOfConferenceNames(); conferenceIndex++)
            {
                //INDEX - TEAM INDEX
                arrayInt68ChampTournIndexes[
                    arrayIntRanked32IndexesForConfChampsIndexes[conferenceIndex]
                ] = tournamentContainer.get32ConfChampsIndexes()[conferenceIndex];
            } //END FOR

            //SET PLAY IN CONFERENCE TOURNAMENT CHAMPIONS

            //ADD 4 WORST CONFERECE CHAMPS TO PLAY IN ARRAY
            //(from best to worse)
            tournamentContainer.set8PlayInIndexes(0, arrayInt68ChampTournIndexes[appResources.getLengthOfConferenceNames() - 4]);
            tournamentContainer.set8PlayInIndexes(1, arrayInt68ChampTournIndexes[appResources.getLengthOfConferenceNames() - 3]);
            tournamentContainer.set8PlayInIndexes(2, arrayInt68ChampTournIndexes[appResources.getLengthOfConferenceNames() - 2]);
            tournamentContainer.set8PlayInIndexes(3, arrayInt68ChampTournIndexes[appResources.getLengthOfConferenceNames() - 1]);

            //ADD AT LARGE TEAMS

            //FOR ALL REMAINING TEAMS
            for (int teamIndex = appResources.getLengthOfConferenceNames(); teamIndex < 68; teamIndex++)
            {
                //FIND TEAM TO ADD TO TOURNAMENT
                do
                {
                    //IF NOT IN ARRAY
                    if (Array.IndexOf(arrayInt68ChampTournIndexes, arrayIntRanked353TeamIndexes[rankIndex]) < 0)
                    {
                        //INDEX - TEAM INDEX
                        arrayInt68ChampTournIndexes[teamIndex] = arrayIntRanked353TeamIndexes[rankIndex];
                        rankIndex++;
                        break;
                    }//END IF
                    rankIndex++;
                } while (rankIndex < arrayIntRanked353TeamIndexes.Length); //END DO WHILE
            } //END FOR

            //SET PLAY IN AT LARGE TEAMS

            //ADD 4 WORST CONFERECE CHAMPS TO PLAY IN ARRAY
            //(from best to worse)
            tournamentContainer.set8PlayInIndexes(4, arrayInt68ChampTournIndexes[64]);
            tournamentContainer.set8PlayInIndexes(5, arrayInt68ChampTournIndexes[65]);
            tournamentContainer.set8PlayInIndexes(6, arrayInt68ChampTournIndexes[66]);
            tournamentContainer.set8PlayInIndexes(7, arrayInt68ChampTournIndexes[67]);

            //ORDER 68 TOURNAMENT TEAMS--------------------------------------------

            //GET RATINGS

            //FOR ALL TOURNAMENT TEAMS
            for (int index = 0; index < arrayDouble68ChampTournRatings.Length; index++)
            {
                //INDEX - RATING
                arrayDouble68ChampTournRatings[index] = tournamentContainer.get353Rankings()[arrayInt68ChampTournIndexes[index]];
            } //END FOR

            //CALCULATE ORDER

            //ORDER TOURNAMENT TEAMS
            Array.Copy(getOrderIndexes(arrayDouble68ChampTournRatings, arrayIntRanked68IndexesForChampTournIndexes.Length),
                       arrayIntRanked68IndexesForChampTournIndexes,
                       arrayIntRanked68IndexesForChampTournIndexes.Length);

            //ORDER 64 TOURNAMENT TEAMS--------------------------------------------

            //GET INDEXES FOR SEEDING

            //GET CONFERENCE TOURNAMENT CHAMPIONS INDEXES
            //(minus 2 worst play in conference champions)

            //FOR ALL SEEDED CONFERENCE CHAMP TEAMS
            for (int index = 0; index < appResources.getLengthOfConferenceNames() - 2; index++)
            {
                //INDEX - TEAM INDEX
                arrayInt64ChampTournIndexes[index] = arrayInt68ChampTournIndexes[index];
            } //END FOR

            //GET AT LARGE INDEXES
            //(minus 2 worst play in at large teams)

            //FOR ALL AT LARGE SEEDED TEAMS
            for (int index = appResources.getLengthOfConferenceNames(); index < arrayInt64ChampTournIndexes.Length + 2; index++)
            {
                //INDEX - TEAM INDEX
                arrayInt64ChampTournIndexes[index - 2] = arrayInt68ChampTournIndexes[index];
            } //END FOR

            //GET RATINGS

            //FOR ALL SEEDED TEAMS
            for (int index = 0; index < arrayDouble64ChampTournRatings.Length; index++)
            {
                //INDEX - RATING
                arrayDouble64ChampTournRatings[index] = tournamentContainer.get353Rankings()[arrayInt64ChampTournIndexes[index]];
            } //END FOR

            //CALCULATE ORDER

            //ORDER TOURNAMENT TEAMS
            Array.Copy(getOrderIndexes(arrayDouble64ChampTournRatings, arrayIntRanked64IndexesForChampTournIndexes.Length),
                       arrayIntRanked64IndexesForChampTournIndexes,
                       arrayIntRanked64IndexesForChampTournIndexes.Length);

            //SET TOURNAMENT SEEDS-------------------------------------------------

            //SET SEEDS
            for (int seedIndex = 0; seedIndex < 16; seedIndex++)
            {
                //SET INDEXES IN RANKINGS
                //RANK - TEAM INDEX
                arrayIntRanked64ChampTournIndexes[seedIndex * 4]     = arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4]];
                arrayIntRanked64ChampTournIndexes[seedIndex * 4 + 1] = arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4 + 1]];
                arrayIntRanked64ChampTournIndexes[seedIndex * 4 + 2] = arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4 + 2]];
                arrayIntRanked64ChampTournIndexes[seedIndex * 4 + 3] = arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4 + 3]];

                //ZIG ZAG THROUGH SEEDS
                if (seedIndex % 2 == 0)
                {
                    //SET INDEXES IN REGIONS
                    tournamentContainer.setRanked16ChampTournWestIndexes(seedIndex, arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4]]);
                    tournamentContainer.setRanked16ChampTournMidwestIndexes(seedIndex, arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4 + 1]]);
                    tournamentContainer.setRanked16ChampTournSouthIndexes(seedIndex, arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4 + 2]]);
                    tournamentContainer.setRanked16ChampTournEastIndexes(seedIndex, arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4 + 3]]);

                    //SET SEEDS IN
                    //RANK - SEED
                    arrayIntRanked64ChampTournSeeds[seedIndex * 4]     = seedIndex;
                    arrayIntRanked64ChampTournSeeds[seedIndex * 4 + 1] = seedIndex;
                    arrayIntRanked64ChampTournSeeds[seedIndex * 4 + 2] = seedIndex;
                    arrayIntRanked64ChampTournSeeds[seedIndex * 4 + 3] = seedIndex;

                    //SET REGIONS IN RANKINGS
                    //RANK - REGION
                    arrayStringRanked64ChampTournRegions[seedIndex * 4]     = appResources.getChampTounRegionTypeText(0);
                    arrayStringRanked64ChampTournRegions[seedIndex * 4 + 1] = appResources.getChampTounRegionTypeText(1);
                    arrayStringRanked64ChampTournRegions[seedIndex * 4 + 2] = appResources.getChampTounRegionTypeText(2);
                    arrayStringRanked64ChampTournRegions[seedIndex * 4 + 3] = appResources.getChampTounRegionTypeText(3);
                }
                else
                {
                    //SET INDEXES IN REGIONS
                    tournamentContainer.setRanked16ChampTournWestIndexes(seedIndex, arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4 + 3]]);
                    tournamentContainer.setRanked16ChampTournMidwestIndexes(seedIndex, arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4 + 2]]);
                    tournamentContainer.setRanked16ChampTournSouthIndexes(seedIndex, arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4 + 1]]);
                    tournamentContainer.setRanked16ChampTournEastIndexes(seedIndex, arrayInt64ChampTournIndexes[arrayIntRanked64IndexesForChampTournIndexes[seedIndex * 4]]);

                    //SET SEEDS IN RANKINGS
                    //RANK - SEED
                    arrayIntRanked64ChampTournSeeds[seedIndex * 4 + 3] = seedIndex;
                    arrayIntRanked64ChampTournSeeds[seedIndex * 4 + 2] = seedIndex;
                    arrayIntRanked64ChampTournSeeds[seedIndex * 4 + 1] = seedIndex;
                    arrayIntRanked64ChampTournSeeds[seedIndex * 4]     = seedIndex;

                    //SET REGIONS IN RANKINGS
                    //RANK - REGION
                    arrayStringRanked64ChampTournRegions[seedIndex * 4 + 3] = appResources.getChampTounRegionTypeText(0);
                    arrayStringRanked64ChampTournRegions[seedIndex * 4 + 2] = appResources.getChampTounRegionTypeText(1);
                    arrayStringRanked64ChampTournRegions[seedIndex * 4 + 1] = appResources.getChampTounRegionTypeText(2);
                    arrayStringRanked64ChampTournRegions[seedIndex * 4]     = appResources.getChampTounRegionTypeText(3);
                } //END IF
            }     //END FOR

            //FILL TOP 68 OVERALL RANKINGS-----------------------------------------

            //FILL TOP 68 TOURNAMENT TEAMS

            //FOR ALL SEEDED TEAMS
            //ADD INDEX REGION AND SEED
            //ADD RANKING INDEXES TO RANKING ARRAY
            for (int index = 0; index < arrayInt68ChampTournIndexes.Length; index++)
            {
                tournamentContainer.setRanked68ChampTournIndexes(
                    index,
                    arrayInt68ChampTournIndexes[arrayIntRanked68IndexesForChampTournIndexes[index]]);

                foundIndex = Array.IndexOf(arrayIntRanked64ChampTournIndexes, tournamentContainer.getRanked68ChampTournIndexes()[index]);

                if (foundIndex != -1)
                {
                    tournamentContainer.setRanked68ChampTournSeeds(index, arrayIntRanked64ChampTournSeeds[foundIndex]);

                    tournamentContainer.setRanked68ChampTournRegions(index, arrayStringRanked64ChampTournRegions[foundIndex]);
                }//END IF

                tournamentContainer.setRanked353ChampTournReturnIndexes(index, arrayInt68ChampTournIndexes[arrayIntRanked68IndexesForChampTournIndexes[index]]);
            } //END FOR

            //SET PLAY IN TEAM SEEDS AND REGIONS-----------------------------------

            //FOR ALL REMAINING TEAMS
            for (int index = 0; index < arrayIntSeededPlayInIndexes.Length; index++)
            {
                //FIND RANKINGS INDEX
                foundIndex = Array.IndexOf(tournamentContainer.getRanked68ChampTournIndexes(), tournamentContainer.get8PlayInIndexes()[arrayIntSeededPlayInIndexes[index]]);

                //COPY SEED AND REGION TO PLAY IN ARRAYS
                tournamentContainer.set8PlayInSeeds(arrayIntSeededPlayInIndexes[index], tournamentContainer.getRanked68ChampTournSeeds()[foundIndex]);

                tournamentContainer.set8PlayInRegions(arrayIntSeededPlayInIndexes[index], tournamentContainer.getRanked68ChampTournRegions()[foundIndex]);
            } //END FOR

            //FILL NON SEEDED PLAY IN TEAMS
            tournamentContainer.set8PlayInSeeds(2, tournamentContainer.get8PlayInSeeds()[1]);
            tournamentContainer.set8PlayInRegions(2, tournamentContainer.get8PlayInRegions()[1]);
            tournamentContainer.set8PlayInSeeds(3, tournamentContainer.get8PlayInSeeds()[0]);
            tournamentContainer.set8PlayInRegions(3, tournamentContainer.get8PlayInRegions()[0]);
            tournamentContainer.set8PlayInSeeds(6, tournamentContainer.get8PlayInSeeds()[5]);
            tournamentContainer.set8PlayInRegions(6, tournamentContainer.get8PlayInRegions()[5]);
            tournamentContainer.set8PlayInSeeds(7, tournamentContainer.get8PlayInSeeds()[4]);
            tournamentContainer.set8PlayInRegions(7, tournamentContainer.get8PlayInRegions()[4]);

            //FILL CHAMPIONSHIP TOURNAMENT ARRAY WITH NON SEEDED PLAY IN TEAMS
            //FIND RANKINGS INDEX
            foundIndex = Array.IndexOf(tournamentContainer.getRanked68ChampTournIndexes(), tournamentContainer.get8PlayInIndexes()[2]);

            tournamentContainer.setRanked68ChampTournIndexes(foundIndex, tournamentContainer.get8PlayInIndexes()[2]);
            tournamentContainer.setRanked68ChampTournSeeds(foundIndex, tournamentContainer.get8PlayInSeeds()[2]);
            tournamentContainer.setRanked68ChampTournRegions(foundIndex, tournamentContainer.get8PlayInRegions()[2]);

            foundIndex = Array.IndexOf(tournamentContainer.getRanked68ChampTournIndexes(), tournamentContainer.get8PlayInIndexes()[3]);

            tournamentContainer.setRanked68ChampTournIndexes(foundIndex, tournamentContainer.get8PlayInIndexes()[3]);
            tournamentContainer.setRanked68ChampTournSeeds(foundIndex, tournamentContainer.get8PlayInSeeds()[3]);
            tournamentContainer.setRanked68ChampTournRegions(foundIndex, tournamentContainer.get8PlayInRegions()[3]);

            foundIndex = Array.IndexOf(tournamentContainer.getRanked68ChampTournIndexes(), tournamentContainer.get8PlayInIndexes()[6]);

            tournamentContainer.setRanked68ChampTournIndexes(foundIndex, tournamentContainer.get8PlayInIndexes()[6]);
            tournamentContainer.setRanked68ChampTournSeeds(foundIndex, tournamentContainer.get8PlayInSeeds()[6]);
            tournamentContainer.setRanked68ChampTournRegions(foundIndex, tournamentContainer.get8PlayInRegions()[6]);

            foundIndex = Array.IndexOf(tournamentContainer.getRanked68ChampTournIndexes(), tournamentContainer.get8PlayInIndexes()[7]);

            tournamentContainer.setRanked68ChampTournIndexes(foundIndex, tournamentContainer.get8PlayInIndexes()[7]);
            tournamentContainer.setRanked68ChampTournSeeds(foundIndex, tournamentContainer.get8PlayInSeeds()[7]);
            tournamentContainer.setRanked68ChampTournRegions(foundIndex, tournamentContainer.get8PlayInRegions()[7]);

            //FILL REMAINING OVERALL RANKINGS--------------------------------------

            //ADD REMAINING TEAMS FROM RANKINGS

            //FOR ALL REMAINING TEAMS
            for (int teamIndex = 68; teamIndex < tournamentContainer.getRanked353ChampTournReturnIndexes().Length; teamIndex++)
            {
                //FIND TEAM TO ADD TO TOURNAMENT
                do
                {
                    //IF NOT IN ARRAY
                    if (Array.IndexOf(arrayInt68ChampTournIndexes, arrayIntRanked353TeamIndexes[rankIndex]) < 0)
                    {
                        tournamentContainer.setRanked353ChampTournReturnIndexes(teamIndex, arrayIntRanked353TeamIndexes[rankIndex]);
                        rankIndex++;
                        break;
                    }//END IF
                    rankIndex++;
                } while (rankIndex < tournamentContainer.getRanked353ChampTournReturnIndexes().Length); //END DO WHILE
            } //END FOR
        }     //END