From 1024a6bd6797ae95f5ff396d0c0def4d492ed9d9 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Mon, 14 May 2007 13:49:09 -0700 Subject: [PATCH] Ease mastering requirement to not require consecutive success Formerly, a session would only exit after consecutively demonstrating mastery of some number of items. This had the affect of skewing the set positive, and potentially doing a large amount of review without introducing any new material. The original intent of the mastery requirement was simply to provide some review of previously learned material after introducing new material. So we now simply require some number of items to be mastered, but we don't require them to be achieved consecutively, (that is, we don't reset the count at any miss). --- mnemon.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/mnemon.c b/mnemon.c index 3298197..1ca0939 100644 --- a/mnemon.c +++ b/mnemon.c @@ -299,9 +299,9 @@ mnemon_init (mnemon_t *mnemon) mnemon->bins = NULL; mnemon->to_introduce = 3; - mnemon->to_master = 10; + mnemon->to_master = 0; mnemon->unlearned = 0; - mnemon->mastered = 0; + mnemon->mastered = -1; } static void @@ -746,6 +746,10 @@ mnemon_handle_response (mnemon_t *mnemon, item->score = 1; mnemon->unlearned--; printf ("You got it!"); + if (mnemon->unlearned == 0 && mnemon->to_master == 0) { + mnemon->to_master = 10; + mnemon->mastered = 0; + } } else if (item->score < 0) { printf ("Yes---just give me %d more.", - item->score); @@ -753,6 +757,8 @@ mnemon_handle_response (mnemon_t *mnemon, printf ("On your first try, no less!"); } else { printf ("Masterful (%dx).", item->score); + if (mnemon->to_master) + mnemon->mastered++; } } else { printf (" %s is the correct answer.", @@ -763,7 +769,6 @@ mnemon_handle_response (mnemon_t *mnemon, if (item->score > 0) printf ( " Oops, you knew that, right?\n "); mnemon->unlearned++; - mnemon->mastered = 0; /* We go to -2 to force a little extra reinforcement * when re-learning an item, (otherwise, it will often * get asked again immediately where it is easy to get @@ -774,22 +779,19 @@ mnemon_handle_response (mnemon_t *mnemon, } } - printf (" ("); + printf (" "); if (mnemon->to_introduce) - printf ("%d to come.", mnemon->to_introduce); - if (mnemon->to_introduce && mnemon->unlearned) - printf (" "); + printf ("%d to come. ", mnemon->to_introduce); if (mnemon->unlearned) - printf ("%d still unlearned.", mnemon->unlearned); - if (mnemon->to_introduce == 0 && mnemon->unlearned == 0) { + printf ("%d still unlearned. ", mnemon->unlearned); + if (mnemon->to_master) { if (mnemon->mastered < mnemon->to_master) printf ("%d items to master", mnemon->to_master - mnemon->mastered); else printf ("Great job!"); - mnemon->mastered++; } - printf (")\n\n"); + printf ("\n\n"); bin = mnemon_get_bin (mnemon, item->score); @@ -860,7 +862,7 @@ mnemon_do_challenges (mnemon_t *mnemon) mnemon_handle_response (mnemon, bin, item_index, item, response); - } while (mnemon->mastered <= mnemon->to_master); + } while (mnemon->mastered < mnemon->to_master); } int -- 2.43.0