Ejemplo n.º 1
0
        private void Start()
        {
            if (IsAborted)
            {
                return;
            }
            CurLevelPassing = new LevelPassing()
            {
                DateAndTime = DateTime.Now.ToString()
            };
            LevelPassings.Add(CurLevelPassing);
            DBTools.Context.Entry(DbLevelRecord).State = System.Data.Entity.EntityState.Modified;
            DBTools.Context.SaveChanges();
            OnPropertyChanged("LevelPassingsCount");
            OnPropertyChanged("CardsCount");
            OnPropertyChanged("AvgCardsErrorsPercentInLast3LevelPassings");

            int id = DbLevelRecord.Id;
            var RefreshedDbLevelRecord = DBTools.Context.Levels.Find(id);

            if (RefreshedDbLevelRecord != null)
            {
                DbLevelRecord = RefreshedDbLevelRecord;
            }

            LoadMedia();
            LoadScenes();
            if (Settings.GetInstance().ShuffleMusic)
            {
                Game.Music.PlayRandom(Settings.GetInstance().RepeatMusicPlaylist);
            }
            else
            {
                Game.Music.PlayInOrder(Settings.GetInstance().RepeatMusicPlaylist);
            }
            Game.Music.Pause();

            CurScene.GetComponent <Starter>().Start();
            Game.Owner.AbortLevelButton.Visibility = Visibility.Visible;
        }
Ejemplo n.º 2
0
        private double GetAvgCardsErrorsPercentInLast3LevelPassings()
        {
            var AllCardPassings = LevelPassings.Select(lp => new
            {
                CardPassings = lp.CardPassings,
                DateAndTime  = GetDateTime(lp.DateAndTime)
            });

            var Last3LevelPassings = AllCardPassings.OrderByDescending(lp => lp.DateAndTime).Take(3);

            List <double> CardsErrorPercents = new List <double>();

            foreach (var lp in Last3LevelPassings)
            {
                double cardsErrorsSumm = 0;
                double cardsPassesSumm = 0;
                foreach (var p in lp.CardPassings)
                {
                    cardsPassesSumm++;
                    if (p.AttemptsNumber > 1)
                    {
                        cardsErrorsSumm++;
                    }
                }
                if (cardsPassesSumm != 0)
                {
                    CardsErrorPercents.Add(cardsErrorsSumm / cardsPassesSumm);
                }
            }
            if (CardsErrorPercents.Count > 0)
            {
                return(CardsErrorPercents.Average());
            }
            else
            {
                return(0);
            }
        }