From: Carl Worth Date: Mon, 14 May 2007 20:49:09 +0000 (-0700) Subject: Ease mastering requirement to not require consecutive success X-Git-Url: https://git.cworth.org/git?p=mnemon;a=commitdiff_plain;h=1024a6bd6797ae95f5ff396d0c0def4d492ed9d9;ds=sidebyside 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). --- 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