From 783483323178bafc4d60c5e29a33c1a0939e1484 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Fri, 01 Oct 2010 16:27:32 +0000 Subject: don't exceed max value --- (limited to 'abacus_window.py') 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) -- cgit v0.9.1