+ /* Penalize an incorrect response by forcing the score
+ * negative. */
+ if (item->score >= 0) {
+ if (item->score > 0)
+ printf ( " Oops, you knew that, right?\n ");
+ unlearned++;
+ 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
+ * a correct response without any learning). */
+ item->score = -2;
+ } else {
+ item->score--;
+ }
+ }
+
+ printf (" (");
+ if (to_introduce)
+ printf ("%d to come.", to_introduce);
+ if (to_introduce && unlearned)
+ printf (" ");
+ if (unlearned)
+ printf ("%d still unlearned.", unlearned);
+ if (to_introduce == 0 && unlearned == 0) {
+ if (mastered < to_master)
+ printf ("%d items to master",
+ to_master - mastered);
+ else
+ printf ("Great job!");
+ mastered++;