Алгоритм изучения слов
Основная идея
Алгоритм
Для раздела "Словарь"
У каждого слова есть три параметра:
- сorrectAnswersNumber - Количество верных ответов на механики, где можно ошибиться
- trainingIntervalsNumber - Текущий номер интервала
- trainedAt - Время последнего повторения слова
При помощи кнопки сброса прогресса пользователь может сбросить в 0 все три параметра.
Все слова, на которые было дано 6 или больше правильных ответов считаются выученными.
Соответственно, у невыученных слов 6 делений прогресса, которые можно увидеть в интерфейсе.
Если пользователь дает неправильный ответ, то это же слово будет показано ему через одну карточку и неправильный ответ не засчитается. Количество таких попыток ограничено, если пользователь допускает 3 ошибки подряд в одном слове, то trainingIntervalsNumber уменьшается на 1. Этот параметр отвечает за то, когда слово будет показано в следующий раз (см. таблицу ниже).
Прогресс слова при этом никогда не может уменьшиться - он всегда может только расти.
Интервалы имеют следующую длительность (в секундах):
Тренировки могут быть 3-х типов: на изучение новых слов, на повторение уже изученных слов, автоматические. На изучение новых слов должны попадать слова с сorrectAnswersNumber < 6, в повторение с сorrectAnswersNumber >= 6 соответственно. При автоматическом выборе тренеровки чередуются, т.е. если последней была тренировка на изучение новых слов, то будет выбрана тренировка на повторение,если это возможно, и наоборот.
Статьи, которые могут быть полезны:
Настройки приложения
Отмена/Перенос урока
Словарь и работа со списком слов на iOS
Словарь и работа со списком слов на Android