Exemple #1
0
 public static void SortByTimestamp(List <IVocabItem> items)
 {
     //after this, sort these timestamp array and make every step for both
     //the timestamp array and the Words array
     for (int i = 0; i < items.Count - 1; ++i)
     {
         for (int j = i + 1; j < items.Count; ++j)
         {
             if (items[i].TimeStamp > items[j].TimeStamp)
             {
                 IVocabItem hv = items[i];
                 items[i] = items[j];
                 items[j] = hv;
             }
         }
     }
 }
Exemple #2
0
        public static void EvaluateWord(int grade)
        {
            IVocabItem activeItem = VocabData.ActiveItem;

            int lastRound = activeItem.LastRound;
            int nextRound = activeItem.NextRound;

            int repetition = nextRound - lastRound;

            activeItem.TimeStamp = ++AppSettings.TimeStamp;

            if (grade > 2)
            {
                if (repetition == 0)
                {
                    ++nextRound;
                }
                else if (repetition == 1)
                {
                    nextRound += 3;
                }
                else
                {
                    nextRound = lastRound + (int)Math.Round(repetition * activeItem.EFactor);
                }

                ++VocabData.ItemsCorrect;
                --VocabData.ItemsLeft;
            }
            else
            {
                nextRound = AppSettings.VocabRound;

                ++VocabData.ItemsWrong;
                VocabData.ActiveItems.Add(activeItem);
            }

            lastRound = AppSettings.VocabRound;

            activeItem.EFactor  += -0.8f + 0.28f * grade - 0.02f * grade * grade;
            activeItem.EFactor   = Math.Max(1.3f, activeItem.EFactor);
            activeItem.NextRound = nextRound;
            activeItem.LastRound = lastRound;
        }
 public void UpdateVocabSuccessRate(IVocabItem vocabItem, bool isCorrect)
 {
     if (isCorrect)
     vocabItem.TallyCorrectAnswer();
 }
        private void ResetWithNewVocab()
        {
            VocabStudyGroup selectedStudyGroup = (VocabStudyGroup)StudyGroupComboBox.SelectedItem;

              if(selectedStudyGroup.IsCompleted)
              {
            MessageBox.Show("You have completed this study group", "Study Group Completed", MessageBoxButton.OK, MessageBoxImage.Information);

            StudyGroupComboBox.SelectedIndex = 0;

            selectedStudyGroup = (VocabStudyGroup)StudyGroupComboBox.SelectedItem;
              }

              _currentVocabItem = _databaseManager.GetRandomVocab(selectedStudyGroup);

              ForeignVocabLabel.Content = _currentVocabItem.ForeignLanguageDefinition;

              GuessKnownVocabTextBox.Text = String.Empty;
              GuessKnownVocabTextBox.Foreground = Brushes.Black;

              CorrectKnownVocabLabel.Content = String.Empty;

              VerifyVocabButton.IsEnabled = true;

              _hasBeenVerified = false;
        }
        private void UpdateScore(IVocabItem vocabItem, bool isCorrect)
        {
            _databaseManager.UpdateVocabSuccessRate(vocabItem, isCorrect);

              if (isCorrect)
            _questionsCorrect++;

              _questionsAsked++;

              ScoreValueLabel.Content = String.Format("{0} of {1}", _questionsCorrect, _questionsAsked);
        }