diff options
author | Walther Neuper <wneuper@localhost.(none)> | 2010-05-22 11:06:05 (GMT) |
---|---|---|
committer | Walther Neuper <wneuper@localhost.(none)> | 2010-05-22 11:06:05 (GMT) |
commit | 9f0aef764d986e2d81713d6848405978341dcdc8 (patch) | |
tree | 304290f6bf4699709152a587c0ef26b01403093d /ReckonPrimer.activity | |
parent | 87323fb8266778de43163829d3a5d4e49ca8cbe2 (diff) |
end session Christian Hain; TODO redo _display._sett
Diffstat (limited to 'ReckonPrimer.activity')
-rw-r--r-- | ReckonPrimer.activity/exercises/exaddsub.py | 92 | ||||
-rw-r--r-- | ReckonPrimer.activity/exercises/exmult.py | 92 | ||||
-rw-r--r-- | ReckonPrimer.activity/exercises/extimesdiv.py | 49 | ||||
-rw-r--r-- | ReckonPrimer.activity/exstore.py | 9 |
4 files changed, 168 insertions, 74 deletions
diff --git a/ReckonPrimer.activity/exercises/exaddsub.py b/ReckonPrimer.activity/exercises/exaddsub.py index c52e70a..25bcb56 100644 --- a/ReckonPrimer.activity/exercises/exaddsub.py +++ b/ReckonPrimer.activity/exercises/exaddsub.py @@ -130,18 +130,6 @@ class ExAddSub(Exercise): if _sett['shuffle']:
random.shuffle(_ops)
return _ops
-
-
-
-
-
-########################################################
-
-
-
-
-
-
def format(self, calc):
"""format the calc for display, prepare overlays for input"""
@@ -161,16 +149,20 @@ class ExAddSub(Exercise): print('#####exaddsub._init_lines: calc=', calc)
_width = 14 #FIXXXME: _width = 14 is Display.width,
_blanksright = 4 #FIXXXME: _blanksright depends on _width when centering
- _line1 = make_chars(' ', _width - len(calc[0]) - _blanksright) + \
+ _line1 = make_chars(' ', _width - len(calc[0]) - \
+ _blanksright) + \
calc[0] + \
make_chars(' ', _blanksright)
- _line2 = make_chars(' ', _width - len(calc[2]) - _blanksright-1)+[calc[1]]+\
+ _line2 = make_chars(' ', _width - len(calc[2]) - \
+ _blanksright-1)+[calc[1]]+\
calc[2] + \
make_chars(' ', _blanksright)
- _line3 = make_chars(' ', _width - max_len(calc) - _blanksright) + \
+ _line3 = make_chars(' ', _width - max_len(calc) - \
+ _blanksright) + \
make_chars('---', max_len(calc)) + \
make_chars(' ', _blanksright)
- _line4 = make_chars(' ', _width - len(calc[4]) - _blanksright) +\
+ _line4 = make_chars(' ', _width - len(calc[4]) - \
+ _blanksright) +\
make_chars('_', len(calc[4])) + \
make_chars(' ', _blanksright)
return [_line1, _line2, _line3, _line4]
@@ -218,44 +210,86 @@ class ExAddSub(Exercise): _c.append('_')
return _c
+ ### buttons ######################################################
+
def define_buttons(self):
# Buttons V top
self.arrow_butts = []
- for i in range(1,6):
+ for i in range(7):
self.toggle = gtk.ToggleButton("V")
self.toggle_label = self.toggle.get_child()
self.toggle.modify_font(pango.FontDescription("sans 12"))
self.toggle.connect("toggled", self.toggle_arrow_callback, i)
- self._display.settings_table.attach(self.toggle, 7-i, 8-i, 3, 4 )
+ self._display.settings_table.attach(self.toggle, 1+i, 2+i, 3, 4 )
self.toggle.show()
self.arrow_butts.append(self.toggle)
# Buttons < right
self.dice_butts = []
- for i in range(1,3):
+ for i in range(3):
self.toggle = gtk.ToggleButton("<")
self.toggle_label = self.toggle.get_child()
self.toggle.modify_font(pango.FontDescription("sans 12"))
self.toggle.connect("toggled", self.toggle_dice_callback, i)
- self._display.settings_table.attach(self.toggle, 6, 7, 9-i, 10-i )
+ self._display.settings_table.attach(self.toggle, 8, 9, 4+i, 5+i)
self.toggle.show()
self.dice_butts.append(self.toggle)
+#vvv###################################################vvv
+ self.numbers = []
+ for i in range(4):
+ self.label = gtk.Label(str(8-i))
+ self.label.modify_font(pango.FontDescription("sans 12"))
+ self._display.settings_table.attach(self.label, 4+i, 5+i, 5, 6)
+ self.label.show()
+ self.numbers.append(self.label)
+ self.numbers = []
+ for i in range(4):
+ self.label = gtk.Label(str(3-i))
+ self.label.modify_font(pango.FontDescription("sans 12"))
+ self._display.settings_table.attach(self.label, 4+i, 5+i, 6, 7)
+ self.label.show()
+ self.numbers.append(self.label)
+ self.numbers = []
+ for i in range(4):
+ self.label = gtk.Label('-------')
+ self.label.modify_font(pango.FontDescription("sans 12"))
+ self._display.settings_table.attach(self.label, 4+i, 5+i, 7, 8)
+ self.label.show()
+ self.numbers.append(self.label)
+ self.numbers = []
+ for i in range(4):
+ self.label = gtk.Label('1')
+ self.label.modify_font(pango.FontDescription("sans 12"))
+ self._display.settings_table.attach(self.label, 4+i, 5+i, 8, 9)
+ self.label.show()
+ self.numbers.append(self.label)
+ self.toggle_plus = gtk.ToggleButton('--10-->')
+ self.toggle_label = self.toggle_plus.get_child()
+ self.toggle_label.modify_font(pango.\
+ FontDescription("sans %d" % style.zoom(12)))
+ self.toggle_plus.connect("toggled", self.toggle_plus_callback)
+ self._display.settings_table.attach(self.toggle_plus, 1, 4, 9, 10)
+ self.toggle_plus.show()
+
+#^^^###################################################^^^
# + Button
self.toggle_plus = gtk.ToggleButton("+")
self.toggle_label = self.toggle_plus.get_child()
- self.toggle_label.modify_font(pango.FontDescription("sans %d" % style.zoom(12)))
+ self.toggle_label.modify_font(pango.\
+ FontDescription("sans %d" % style.zoom(12)))
self.toggle_plus.connect("toggled", self.toggle_plus_callback)
- self._display.settings_table.attach(self.toggle_plus, 0, 1, 8, 9 )
+ self._display.settings_table.attach(self.toggle_plus, 3, 4, 6, 7)
self.toggle_plus.show()
# - Button
self.toggle_minus = gtk.ToggleButton("-")
self.toggle_label = self.toggle_minus.get_child()
- self.toggle_label.modify_font(pango.FontDescription("sans %d" % style.zoom(12)))
+ self.toggle_label.modify_font(pango.
+ FontDescription("sans %d" % style.zoom(12)))
self.toggle_minus.connect("toggled", self.toggle_minus_callback)
- self._display.settings_table.attach(self.toggle_minus, 0, 1, 7, 8 )
+ self._display.settings_table.attach(self.toggle_minus, 2, 3, 6, 7)
self.toggle_minus.show()
@@ -272,27 +306,27 @@ class ExAddSub(Exercise): def set_buttons(self, sett):
#print("#####exaddsub.set_buttons, sett=", sett)
- for i in range(sett['min_pos']-1, sett['max_pos']):
+ for i in range(sett['length']):
#print("#####exaddsub.set_buttons, i=", i)
self.arrow_butts[i].set_active(True)
- for i in range(sett['min_lines']-2,sett['max_lines']):
+ for i in range(2):
self.dice_butts[i].set_active(True)
#if (sett[i] == False):
#self.toggle_dice_butts[i].set_active(True)
- if ( sett['+'] == True ):
+ if ('+' in sett['ops']):
self.toggle_plus.set_active(True)
else:
self.toggle_plus.set_active(False)
- if ( sett['-'] == True ):
+ if ('-' in sett['ops']):
self.toggle_minus.set_active(True)
else:
self.toggle_minus.set_active(False)
- #**** callbacks ********************************************************
+ #**** callbacks ***********************************************
def toggle_arrow_callback(self, widget, i):
#print("###toggle_arrow_callback :self._sett=", self._sett)
diff --git a/ReckonPrimer.activity/exercises/exmult.py b/ReckonPrimer.activity/exercises/exmult.py index fa2dd70..a0d082f 100644 --- a/ReckonPrimer.activity/exercises/exmult.py +++ b/ReckonPrimer.activity/exercises/exmult.py @@ -131,3 +131,95 @@ class ExMult(Exercise): return (self._init_lines(_ccalc, _width, _bright), self._calc_lines(_ccalc, _width, _bright)) + ### buttons ###################################################### + + def define_buttons(self): + _max_length = 6 #FIXXXME class variable of ExMult + _max_width = 9 #FIXXXME class variable of Display + self.len1_butts = [] + for i in range(_max_length): + self.toggle = gtk.ToggleButton(str(_max_length-i)) + self.toggle_label = self.toggle.get_child() + self.toggle.modify_font(pango.FontDescription("sans 12")) + self.toggle.connect("toggled", self.set_len1_callback, i) + self._display.settings_table.attach(self.toggle, 0+i, 1+i, 3, 4) + self.toggle.show() + self.len1_butts.append(self.toggle) + self.set_label('*', _max_length, _max_length+1, 3, 4) + self.len2_butts = [] + for i in range(2): #max len of right factor + self.toggle = gtk.ToggleButton(str(i+1)) + self.toggle_label = self.toggle.get_child() + self.toggle.modify_font(pango.FontDescription("sans 12")) + self.toggle.connect("toggled", self.set_len2_callback, i) + self._display.settings_table.attach(self.toggle, + _max_length+1+i, _max_length+2+i, 3, 4) + self.toggle.show() + self.len2_butts.append(self.toggle) + for i in range(_max_width): + self.set_label('-----', i,i+1, 4,5) + self.set_label('6', 0,1, 5,6) + self.set_label('5', 1,2, 5,6) + self.set_label('4', 2,3, 5,6) + self.set_label('3', 3,4, 5,6) + self.set_label('2', 4,5, 5,6) + self.set_label('1', 5,6, 5,6) + #next line + self.set_label('1', 0,1, 6,7) + self.set_label('3', 1,2, 6,7) + self.set_label('0', 2,3, 6,7) + self.set_label('8', 3,4, 6,7) + self.set_label('6', 4,5, 6,7) + self.set_label('4', 5,6, 6,7) + self.set_label('2', 6,7, 6,7) + for i in range(7): + self.set_label('-----', i,i+1, 7,8) + self.set_label('7', 0,1, 8,9) + self.set_label('8', 1,2, 8,9) + self.set_label('5', 2,3, 8,9) + self.set_label('1', 3,4, 8,9) + self.set_label('8', 4,5, 8,9) + self.set_label('5', 5,6, 8,9) + self.set_label('2', 6,7, 8,9) + + def set_label(self, text, c1,c2, l1,l2): + self.label = gtk.Label(text) + self.label.modify_font(pango.FontDescription("sans 12")) + self._display.settings_table.attach(self.label, c1,c2, l1,l2) + self.label.show() + + + + ### set buttons ################################################## + + def set_buttons(self, sett): #FIXME remove sett + print('##### exmult set_buttons') + _max_length = 6 #FIXXXME class variable ! + for i in range(_max_length): + if i < _max_length - self._sett['fact1']: + self.len1_butts[i].set_active(False) + else: + self.len1_butts[i].set_active(True) + + for i in range(2): #max len of right factor + self.len2_butts[i].set_active(False) + self.len2_butts[0].set_active(True) + + + ### callbacks #################################################### + + def set_len1_callback(self, widget, clickno): + print('##### exmult set_len1_callback, clickno=', clickno) + _max_length = 6 #FIXXXME class variable ! + self._sett['fact1'] = _max_length - clickno +1 + print("##### exmult set_len1_callback, self._sett['fact1']=",\ + self._sett['fact1']) + print("##### exmult set_len1_callback, self.display._sett['fact1']=",\ + self.display._sett['fact1']) + self.set_buttons(self._sett) + + def set_len2_callback(self, widget, i): + #max len of right factor can NOT YET be changed + #due to limited _generate_calcs, format + self.len2_butts[0].set_active(True) + self.len2_butts[1].set_active(False) diff --git a/ReckonPrimer.activity/exercises/extimesdiv.py b/ReckonPrimer.activity/exercises/extimesdiv.py index 36c7d3e..e66f24a 100644 --- a/ReckonPrimer.activity/exercises/extimesdiv.py +++ b/ReckonPrimer.activity/exercises/extimesdiv.py @@ -41,7 +41,7 @@ class ExTimesDiv(Exercise): # # -: minimum result
# 'max' : 2, # +: maximum number in right *operand
# # -: maximum result -# 'factors' : [1,2,3,4,5], # Liste mit ausgewählten zahlen zur berechnung
+# 'factors' : [2,4,8], # Liste mit ausgewählten zahlen zur berechnung
# 'shuffle_all' : False, # shuffle all calcs
# 'shuffle_inner': False, # shuffle only 1st (inner) iteration
# 'cut-max' : True # cut set of all calcs down to MAX
@@ -94,6 +94,8 @@ _dic['shuffle_inner'], _dic['remainder'], _dic['vadd'], _dic['vmult'])) # """TODO""" # return len(self._calcs) + ### buttons ###################################################### + def define_buttons(self): """buttons for this setting, which is specific for TimesDiv""" self.label = gtk.Label("2") @@ -278,6 +280,8 @@ style.zoom(12))) self.toggle.show() self.number_butts.append(self.toggle) + ### set buttons ################################################## + def set_buttons(self, sett): """buttons for setting specific to 'topic' 'times_div'""" print('### in extimesdiv. set_buttons sett=',sett) @@ -286,9 +290,6 @@ style.zoom(12))) self.number_butts[i].set_active(False) print('### vor der aktivierungsschleife:',sett['factors']) - #_xxx = [1,2,3] #sett['factors'] - #print('### in extimesdiv. set_buttons _xxx=',_xxx) - #for i in _xxx: for i in sett['factors']: print('### in extimesdiv, i=',i-1) print('### in der schleife sind die factors:', sett['factors']) @@ -296,30 +297,6 @@ style.zoom(12))) print('### in extimesdiv. set_buttons after set_active(True)') print('### nach der schleife sind die factors:', sett['factors']) -#('### in extimesdiv. set_buttons _xxx=', [1, 2, 3]) -#('### in extimesdiv, i=', 0) -#Traceback (most recent call last): -# File "/netshares/staffhomes/wneuper/Activities/ReckonPrimer.activity/extimesdiv.py", line 381, in toggle_number_callback -# del_ord(self._display._sett['factors'], i) -# File "/netshares/staffhomes/wneuper/Activities/ReckonPrimer.activity/functions.py", line 367, in del_ord -# ls.remove(n) -#ValueError: list.remove(x): x not in list -#('### in extimesdiv, i=', 1) -#Traceback (most recent call last): -# File "/netshares/staffhomes/wneuper/Activities/ReckonPrimer.activity/extimesdiv.py", line 386, in toggle_number_callback -# ins_ord(self._display._sett['factors'], i) -#RuntimeError: maximum recursion depth exceeded -#('### in extimesdiv, i=', 2) -#Traceback (most recent call last): -# File "/netshares/staffhomes/wneuper/Activities/ReckonPrimer.activity/extimesdiv.py", line 381, in toggle_number_callback -# del_ord(self._display._sett['factors'], i) -# File "/netshares/staffhomes/wneuper/Activities/ReckonPrimer.activity/functions.py", line 367, in del_ord -# ls.remove(n) -#ValueError: list.remove(x): x not in list -#1265902075.138594 WARNING root: No gtk.AccelGroup in the top level window. -#1265902075.141243 WARNING root: No gtk.AccelGroup in the top level window. -### in extimesdiv. set_buttons after set_active(True) - if (sett['shuffle_all'] == True): self.toggle_shuffle_all.set_active(True) else: @@ -355,7 +332,7 @@ style.zoom(12))) else: self.toggle_remainder.set_active(False) - #**** callbacks ******************************************************** + ### callbacks #################################################### def toggle_vadd_callback(self, widget): if widget.get_active(): @@ -409,28 +386,20 @@ style.zoom(12))) REMARK: last button is redrawn from settings (i.e. last stmt).""" if widget.get_active(): if(i in self._display._sett['factors']): - #print('passed cause i=', i) pass else: - #print('number to add=', i) - #print('list bevore adding:', self._display._sett['factors']) ins_ord(self._display._sett['factors'], i) - #print('list after adding', self._display._sett['factors']) else: if(len(self._display._sett['factors']) > 1): - #print('number to remove=', i) - #print('list bevore removeing:', self._display._sett['factors']) self._display._sett['factors'].remove(i) - #print('list after removeing:', self._display._sett['factors']) - else: # gtk deactivates button anyway; thus get values from setting - #print('list will stay, because list is:', self._display._sett['factors']) + else: # gtk deactivates button anyway; thus get values from sett self.set_buttons(self._display._sett) def toggle_times_callback(self, widget): if widget.get_active(): self._display._sett['*'] = True - self._display._sett['remainder'] = False #################### - self.toggle_remainder.set_active(False) #################### + self._display._sett['remainder'] = False #CH + self.toggle_remainder.set_active(False) #CH else: if( self.toggle_commute.get_active() or self.toggle_in.get_active() or diff --git a/ReckonPrimer.activity/exstore.py b/ReckonPrimer.activity/exstore.py index 8517315..3ff1645 100644 --- a/ReckonPrimer.activity/exstore.py +++ b/ReckonPrimer.activity/exstore.py @@ -172,7 +172,7 @@ class ExStore: 'calclines': 4, # no. of lines for calc to be input. 'MAX' : 10, # maximum of calcs generated. 'MIN' : 10, # minimum of calcs generated UNUSED - 'fact1' : 3, # number of digits of left factor + 'fact1' : 5, # number of digits of left factor 'fact2' : 1, # FIXED due to constraints in # _generate_calcs and format 'cut-max': True # cut set of all calcs down to MAX @@ -180,7 +180,7 @@ class ExStore: self._root = \ Collection("root = invisible node","required by tree structure", None, - [Collection("Praxis Volksschule", #_c1 + [Collection("Praxis Volksschule PHSt", #_c1 "Rechenuebungen fuer die 1. und 2.Klasse, festgelegt am 16.Dez.09 mit Nina Jaklitsch und Arndt Stoeckl .", None, [Collection("Uebungen . und 'in' ", #_c1c1 @@ -208,10 +208,9 @@ Collection("root = invisible node","required by tree structure", None, [ ]) ]), - Collection("Schoenberger", #_c2 + Collection("Mini course", #_c2 "Most efficient introduction to the four basic arithmetic \ - operations as taught by Igo Schoenberger in the last century \ - in Upper Austria.", + operations as taught in the last century in Upper Austria.", None, [ ]), |