Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/ReckonPrimer.activity/learner.py
diff options
context:
space:
mode:
Diffstat (limited to 'ReckonPrimer.activity/learner.py')
-rw-r--r--ReckonPrimer.activity/learner.py30
1 files changed, 28 insertions, 2 deletions
diff --git a/ReckonPrimer.activity/learner.py b/ReckonPrimer.activity/learner.py
index 5df67e2..4c12e29 100644
--- a/ReckonPrimer.activity/learner.py
+++ b/ReckonPrimer.activity/learner.py
@@ -3,13 +3,16 @@
class Learner:
""" All functionality within the learners rights. """
+ _learnmode = None
+
def __init__(self, display, coach):
self._display = display
self._coach = coach
+ self._learnmode = self._coach.get_learnmode()
self._ex = None
self._curr_in = None
pass
-
+
def run(self):
""" As long as user does exercises.
Doing Exercises is terminated by another choice in the menu
@@ -20,6 +23,12 @@ class Learner:
def start_calcs(self, exercise):
self._ex = exercise
+
+ try: self._ex.set_num_intermediate_repetitions(self._learnmode['intermediate_repetitions'])
+ except Exception: self._ex.set_num_intermediate_repetitions(0)
+ try: self._ex.set_num_delayed_repetitions(self._learnmode['delayed_repetitions'])
+ except Exception: self._ex.set_num_delayed_repetitions(0)
+
self._display.set_curr_exerc(exercise)
_calc = self._ex.get_next_calc()
_lines, self._input = exercise.format(_calc)
@@ -45,4 +54,21 @@ class Learner:
# create_entryline sets the callback from gtk to Display
except IndexError:
self._display.finish_calc()
- \ No newline at end of file
+
+ def calculation_error(self):
+ self._ex.handle_calculation_error()
+ #print('in learner.notify, digit-done: _input=', self._input)
+ (lino, pos, dig, proterr, protok, li) = self._curr_in
+ self._display.create_entryline((lino, -1, dig, proterr, protok, li))
+ self._display.show_progress()
+ try: # get_next_calc
+ _calc = self._ex.get_next_calc()
+ print('in learner.notify: calc=', _calc)
+ _lines, self._input = self._ex.format(_calc)
+ self._display.display_calc(_lines)
+ self._curr_in = self._input.pop() #need _curr_in in notify
+ self._display.create_entryline(self._curr_in)
+ # create_entryline sets the callback from gtk to Display
+ except IndexError:
+ self._display.finish_calc()
+