From 87a0e087e5617aa04f12a42ed4b1f5772b3e040f Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Mon, 1 Feb 2010 03:28:46 +0900 Subject: [PATCH] tweak scheduler - don't touch factor on fail, as per SM2 specs - hard code no-punish-on-hard 'learning period' to 7 days so users who tweak the initial intervals aren't punished too early --- anki/deck.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/anki/deck.py b/anki/deck.py index 85f2e67ab..f628a51ca 100644 --- a/anki/deck.py +++ b/anki/deck.py @@ -519,14 +519,9 @@ where id != :id and factId = :factId""", if not card.reps: # card is new, inherit beginning factor card.factor = self.averageFactor - if self.cardIsBeingLearnt(card) and ease in [0, 1, 2]: - # only penalize failures after success when starting - if card.successive and ease != 2: - card.factor -= 0.20 - elif ease in [0, 1]: - card.factor -= 0.20 - elif ease == 2: - card.factor -= 0.15 + if ease == 2: + if card.successive and not self.cardIsBeingLearnt(card): + card.factor -= 0.15 elif ease == 4: card.factor += 0.10 card.factor = max(1.3, card.factor) @@ -985,7 +980,7 @@ and due < :now""" % self.forceIndex("ix_cards_priorityDue"), now=time.time()) def cardIsBeingLearnt(self, card): "True if card should use present intervals." - return card.interval < self.easyIntervalMin + return card.interval < 7 def cardIsYoung(self, card): "True if card is not new and not mature."