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; } } } }
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); }