示例#1
0
        public double calculateProvisionalElo(string summoner, double ranking, DataPlayer dataGame)
        {
            double newRanking = 0;
            string tier       = readSeedData(summoner);

            newRanking = dataGame.getRatingBasedOnHighestTierAchieved(tier);

            return(newRanking);
        }
示例#2
0
        public string AdjustMethod(string summonerName, string rankOutcome, double rating, string pathTokey)
        {
            int    tier;
            int    tierOutcome;
            string adjustments = "No adjustments have been done";

            try
            {
                SummonerRank summonerRank = new SummonerRank(pathTokey);
                summonerRank.GetSummonerInfo(summonerName).Wait();

                id = summonerRank.encryptedSummonerId;

                summonerRank.GetLeagueAsync(summonerRank.encryptedSummonerId).Wait();


                foreach (var league in summonerRank.league)
                {
                    if (league.QueueType == "RANKED_SOLO_5x5")
                    {
                        rank = league.Tier;
                    }
                }
                rank = "Silver";


                if (!(rank == "UNRANKED" && rankOutcome == rank))
                {
                    tier        = getTierNumber(rank);
                    tierOutcome = getTierNumber(rankOutcome);

                    if (rank != rankOutcome)
                    {
                        if (tier < tierOutcome)
                        {
                            adjustments = DataPlayer.adjustConstantsLowerLimit(rating, rank);
                        }
                        else
                        {
                            adjustments = DataPlayer.adjustConstantsLowerLimit(rating, rank);
                        }
                    }
                }

                return(adjustments);
            }



            catch (Exception ex)
            {
                string message = ex.InnerException.Message;
                return(message = ex.Message);
            }
        }
示例#3
0
        static void Main(string[] args)

        {
            //Full test
            double newRanking;
            double currentRanking = 1234;
            double provisionalRanking;
            string pathTokey = @"C:\Users\andreea.rentea\Documents\Visual Studio 2015\Projects\ELORating\key.txt";

            ELOClient client  = new ELOClient();
            string    tierout = client.readSeedData("TossThoseDigits2");                                            //given a summoner name, read from seed data

            DataPlayer datagame = new DataPlayer(1149, 1150, 1499, 1500, 1849, 1850, 2199, 2200, 2499, 2500, 2999); //limits for ranking

            if (tierout == null || tierout.ToLower() == "unranked")
            {
                provisionalRanking = client.calculateProvisionalElo("TossThoseDigits2", 0, datagame);
                currentRanking     = provisionalRanking;
            }

            //create teams
            Hashtable htAllies = new Hashtable();

            htAllies.Add("TossThoseDigits2", currentRanking);
            htAllies.Add("141Masters", 1290);
            htAllies.Add("Pheejhmoo", 1232);
            htAllies.Add("DUNKNGOHAMZIES", 1289);
            htAllies.Add("YABO2", 1700);


            Hashtable htOpponents = new Hashtable();

            htOpponents.Add("TheMuffinMan97", 1567);
            htOpponents.Add("GXuanMing", 1800);
            htOpponents.Add("vampiresland", 1100);
            htOpponents.Add("XxlivewirexX", 1311);
            htOpponents.Add("Molegg", 1200);

            //calculate elo after match
            newRanking = client.calculateElo("141Masters", currentRanking, "win", htAllies, htOpponents);


            ConstantAdjustments consta = new ConstantAdjustments();
            string adjustments         = consta.AdjustMethod("TossThoseDigits2", "platinum", 1450, pathTokey); // adjust upper and lower limits; output: the name of the
        }
示例#4
0
        static void Main(string[] args)
        {
            //create match
            Rating myRating = new Rating(1278, 1392, Rating.LOSE, Rating.WIN);

            myRating.GetNewRatings();

            //test 1
            MatchPlayer alex  = new MatchPlayer("alex", 643);
            MatchPlayer xyz   = new MatchPlayer("xyz", 2742);
            MatchPlayer asdas = new MatchPlayer("asdas");


            ELORanking game1 = new ELORanking(3);

            alex.Result  = ELORanking.MatchResult.Win;
            xyz.Result   = ELORanking.MatchResult.Lose;
            asdas.Result = ELORanking.MatchResult.Win;

            game1.Matchup.Add(alex);
            game1.Matchup.Add(xyz);
            game1.Matchup.Add(asdas);
            double asdass = asdas.Rating;

            double newRankingAlex  = game1.CalculateNewRatingForPlayer(alex);
            double newRankingxyz   = game1.CalculateNewRatingForPlayer(xyz);
            double newRankingasdas = game1.CalculateNewRatingForPlayer(asdas);

            alex.Rating = alex.NewRating;
            double tier = DataPlayer.getRatingBasedOnHighestTierAchieved("bronze");


            //test 2
            ELOClient client = new ELOClient();

            client.readSeedData("TheMuffinMan97");

            //test 3
            // if ranking = null
            double Ranking = client.calculateProvisionalElo("TheMuffinMan97", 0);

            //test 4
            Hashtable ht1 = new Hashtable();

            ht1.Add("TheMuffinMan97", "1234");


            Hashtable ht2 = new Hashtable();

            ht2.Add("Molegg", "2311");

            newRankingAlex = client.calculateElo("141Masters", 1222, "win", ht1, ht2);



            //for provisional

            /*
             * DataPlayer:getDivision(Database) -> if not found -> getLatest Division(Fetchy) -> add an initial base|
             *
             */

            // get data from last 10 matches: summnonerName, rating, outcome, Matches[10] matches -> to be implemented

            /* for each match that the player has participated
             *
             * ELORanking game = new ELORanking(10);
             * MatchPlayer opponents
             *
             * foreach(player in players)
             * {
             *    game.Matchup.Add(player)
             * }
             *
             * if outcome = LOST => foreach(player in opponents)
             *                  {
             *                          player.Result = ELORating.MatchResult.Win;
             *                  }
             * else...
             *
             * newRating = game.CalculateNewRatingForPlayer(summnonerName);
             *
             */
        }