Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/abacus_window.py
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2010-10-01 16:27:32 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-10-01 16:27:32 (GMT)
commit783483323178bafc4d60c5e29a33c1a0939e1484 (patch)
treea865317957d1f8e3cef2a503806c3a3949a1f6d3 /abacus_window.py
parent1a98896f25543b63844ceebf45e879b1b531bed7 (diff)
don't exceed max value
Diffstat (limited to 'abacus_window.py')
-rw-r--r--abacus_window.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/abacus_window.py b/abacus_window.py
index c7cc625..7e150f5 100644
--- a/abacus_window.py
+++ b/abacus_window.py
@@ -679,12 +679,22 @@ class AbacusGeneric():
self.set_rod_value(r, v[r])
return
+ def max_value(self):
+ """ Maximum value possible on abacus """
+ max = 0
+ for bead in self.beads:
+ max += bead.value
+ return max
+
def set_value_from_number(self, number):
""" Set abacus to value in string """
- for r in range(self.num_rods):
- number -= self.set_rod(r, number)
- if number == 0:
- break
+ if number > self.max_value():
+ self.reset_abacus()
+ else:
+ for r in range(self.num_rods):
+ number -= self.set_rod(r, number)
+ if number == 0:
+ break
def set_rod(self, rod, number):
bead = rod * (self.top_beads + self.bot_beads)