Beispiel #1
0
        public async Task <bool> OppdaterBekker(Bekker bekker)
        {
            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                var query = $"UPDATE Bruker SET Navn = '{bekker.Navn}', Elo = {bekker.Elo} WHERE Id = {bekker.Id}";

                using (SqlCommand cmd = new SqlCommand(query, conn))
                {
                    var rowsAffected = await cmd.ExecuteNonQueryAsync();

                    return(rowsAffected == 1);
                }
            }
        }
Beispiel #2
0
        public async Task <bool> LeggTilBekker(Bekker bekker)
        {
            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                var query = $"INSERT INTO Bruker (Navn, Elo) VALUES ('{bekker.Navn}', {bekker.Elo})";

                using (SqlCommand cmd = new SqlCommand(query, conn))
                {
                    var rowsAffected = await cmd.ExecuteNonQueryAsync();

                    return(rowsAffected == 1);
                }
            }
        }
Beispiel #3
0
        // Implementasjon følger https://metinmediamath.wordpress.com/2013/11/27/how-to-calculate-the-elo-rating-including-example/
        public static Tuple <int, int> FinnNyeEloRatinger(Bekker hvit, Bekker svart, PartiResultat resultat)
        {
            double ratingTransformertHvit  = Math.Pow(10, (double)hvit.Elo / 400);
            double ratingTransformertSvart = Math.Pow(10, (double)svart.Elo / 400);

            double forventningsverdiHvit  = ratingTransformertHvit / (ratingTransformertHvit + ratingTransformertSvart);
            double forventningsverdiSvart = ratingTransformertSvart / (ratingTransformertHvit + ratingTransformertSvart);

            double poengHvit  = resultat == PartiResultat.VinnerHvit ? 1 : 0;
            double poengSvart = resultat == PartiResultat.VinnerSvart ? 1 : 0;

            if (resultat == PartiResultat.Uavgjort)
            {
                poengHvit  = 0.5;
                poengSvart = 0.5;
            }

            double nyRatingHvit  = hvit.Elo + KFaktor * (poengHvit - forventningsverdiHvit);
            double nyRatingSvart = svart.Elo + KFaktor * (poengSvart - forventningsverdiSvart);

            return(new Tuple <int, int>((int)nyRatingHvit, (int)nyRatingSvart));
        }