_count_possible (dict_cursor_next (cursor, c), depth + 1, possible);
 }
 
+static void
+_print_stats (int found[WORD_GAME_MAX_WORD_LENGTH+1],
+             int possible[WORD_GAME_MAX_WORD_LENGTH+1],
+             int found_total,
+             int possible_total)
+{
+    int i;
+
+    for (i = 2; i <= 17; i++)
+       if (possible[i])
+           printf ("%d:(%d/%d) ", i, found[i], possible[i]);
+
+    printf ("total:(%d/%d = %.2f%%)\n",
+           found_total, possible_total,
+           100 * (double) found_total / possible_total);
+}
+
+
 void
 word_game_play (const char     *puzzle,
                dict_t          *dict,
                printf ("%s\n", puzzle);
                just_saw_puzzle = TRUE;
            } else {
-               for (i = 2; i <= 17; i++)
-                   if (possible[i])
-                       printf ("%d:(%d/%d) ", i, found[i], possible[i]);
-               printf ("total:(%d/%d = %.2f%%)\n",
-                       found_total, possible_total,
-                       100 * (double) found_total / possible_total);
+               _print_stats (found, possible, found_total, possible_total);
            }
        } else {
            dict_entry_t *entry;
        }
     } while (remaining > 0);
 
-    printf ("%s\n", puzzle);
+    printf ("\n%s\n", puzzle);
+
+    printf ("\n");
+    _print_stats (found, possible, found_total, possible_total);
+    printf ("\n");
 
     if (found_total) {
        printf ("Words you found:\n");