Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/ReckonPrimer.activity
diff options
context:
space:
mode:
authorWalther Neuper <wneuper@localhost.(none)>2010-05-22 11:06:05 (GMT)
committer Walther Neuper <wneuper@localhost.(none)>2010-05-22 11:06:05 (GMT)
commit9f0aef764d986e2d81713d6848405978341dcdc8 (patch)
tree304290f6bf4699709152a587c0ef26b01403093d /ReckonPrimer.activity
parent87323fb8266778de43163829d3a5d4e49ca8cbe2 (diff)
end session Christian Hain; TODO redo _display._sett
Diffstat (limited to 'ReckonPrimer.activity')
-rw-r--r--ReckonPrimer.activity/exercises/exaddsub.py92
-rw-r--r--ReckonPrimer.activity/exercises/exmult.py92
-rw-r--r--ReckonPrimer.activity/exercises/extimesdiv.py49
-rw-r--r--ReckonPrimer.activity/exstore.py9
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,
[
]),