diff options
author | jmpc <jumapico@gmail.com> | 2010-04-02 11:07:53 (GMT) |
---|---|---|
committer | jmpc <jumapico@gmail.com> | 2010-04-02 11:07:53 (GMT) |
commit | 902339e3ad99db68e59aa0262b51628a8b088156 (patch) | |
tree | 4d6375e381130c26cab03d37629bf0a5daa7d0a2 | |
parent | 3996a418ff1a7791a373e278d408bad104e6c2c7 (diff) | |
parent | c9d6a76da0906f542ce5d767601476c680b1f150 (diff) |
Merge branch 'master' of git.sugarlabs.org:fractions-of-cakes/mainline
-rw-r--r-- | fracciones.activity/fractionlogic.py | 28 | ||||
-rw-r--r-- | fracciones.activity/fractionpresentation.py | 2 | ||||
-rwxr-xr-x | fracciones.activity/gtkcake.py | 7 |
3 files changed, 23 insertions, 14 deletions
diff --git a/fracciones.activity/fractionlogic.py b/fracciones.activity/fractionlogic.py index 0acc7fe..10fd8e0 100644 --- a/fracciones.activity/fractionlogic.py +++ b/fracciones.activity/fractionlogic.py @@ -8,39 +8,45 @@ DENOMINATOR_MIN = 4 DENOMINATOR_MAX = 10 -class FractionLogic(object): - +class Fraction(object): + def __init__(self): self.numerator = None self.denominator = None +class FractionLogic(object): + + def __init__(self): + self.fraction = Fraction() + + def generate(self): """Generate new fraction""" if DENOMINATOR_MIN < 1: raise Exception("DENOMINATOR_MIN need be greather than 0") - self.denominator = random.randrange(DENOMINATOR_MIN, DENOMINATOR_MAX) - self.numerator = random.randrange(0, self.denominator+1) + self.fraction.denominator = random.randrange(DENOMINATOR_MIN, DENOMINATOR_MAX) + self.fraction.numerator = random.randrange(0, self.fraction.denominator+1) def get_current(self): """Return the current fraction, raise an exception if generate_fraction hasn't called before""" - if self.denominator is None: + if self.fraction.denominator is None: raise Exception("generate_fraction must be called before get_current_fraction") - return (self.numerator, self.denominator) + return (self.fraction.numerator, self.fraction.denominator) def is_equal(self, fraction): """Check if fraction is equal that the internal""" - if not(type(fraction) is tuple and len(fraction) == 2): + if not(type(fraction) is Fraction and self.fraction.denominator is not None): raise Exception("fraction must be a tuple of length 2") - if self.denominator is None: + if self.fraction.denominator is None: raise Exception("generate_fraction must be called before is_equal") - return fraction[0] * self.denominator == fraction[1] * self.numerator + return fraction.numerator * self.fraction.denominator == fraction.denominator * self.fraction.numerator def __repr__(self): - if self.denominator is None: + if self.fraction.denominator is None: return "<FractionLogic(Undefined)>" - return "<FractionLogic(%i,%i)>"%(self.numerator,self.denominator) + return "<FractionLogic(%i,%i)>"%(self.fraction.numerator,self.fraction.denominator) diff --git a/fracciones.activity/fractionpresentation.py b/fracciones.activity/fractionpresentation.py index f53185f..ea618f1 100644 --- a/fracciones.activity/fractionpresentation.py +++ b/fracciones.activity/fractionpresentation.py @@ -9,7 +9,7 @@ import pango import gtkcake from fractionlogic import FractionLogic - +from fractionlogic import Fraction logging.basicConfig(level=logging.DEBUG) log = logging.getLogger() diff --git a/fracciones.activity/gtkcake.py b/fracciones.activity/gtkcake.py index 853235b..c42fd62 100755 --- a/fracciones.activity/gtkcake.py +++ b/fracciones.activity/gtkcake.py @@ -12,6 +12,7 @@ import math import gtk import cairo +from fractionlogic import Fraction WIDTH = 500 HEIGHT = 500 @@ -44,8 +45,10 @@ class Cake(gtk.DrawingArea): @property def current_fraction(self): - return (len([selected for selected in self.selected_list if selected]), self.subdivisions) - + fraction = Fraction() + fraction.numerator = len([selected for selected in self.selected_list if selected]) + fraction.denominator = self.subdivisions + return fraction def reset(self, subdivisions, draw=True): # variables de estado de la torta |