You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
877 B

import '../models/question.dart';
import '../models/deck_config.dart';
/// Manages priority point calculations for questions.
class PriorityManager {
/// Applies priority changes based on answer correctness.
static Question applyAnswerResult({
required Question question,
required bool isCorrect,
required DeckConfig config,
}) {
if (isCorrect) {
final newPriority = (question.priorityPoints -
config.priorityDecreaseOnCorrect)
.clamp(0, double.infinity)
.toInt();
return question.withPriorityPoints(newPriority);
} else {
return question.copyWith(
priorityPoints: question.priorityPoints +
config.priorityIncreaseOnIncorrect,
);
}
}
/// Resets priority to 0.
static Question resetPriority(Question question) {
return question.withPriorityPoints(0);
}
}

Powered by TurnKey Linux.