diff options
author | Walter Bender <walter@sugarlabs.org> | 2010-10-01 16:27:32 (GMT) |
---|---|---|
committer | Walter Bender <walter@sugarlabs.org> | 2010-10-01 16:27:32 (GMT) |
commit | 783483323178bafc4d60c5e29a33c1a0939e1484 (patch) | |
tree | a865317957d1f8e3cef2a503806c3a3949a1f6d3 /abacus_window.py | |
parent | 1a98896f25543b63844ceebf45e879b1b531bed7 (diff) |
don't exceed max value
Diffstat (limited to 'abacus_window.py')
-rw-r--r-- | abacus_window.py | 18 |
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) |