Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmpc <jumapico@gmail.com>2010-04-02 11:07:53 (GMT)
committer jmpc <jumapico@gmail.com>2010-04-02 11:07:53 (GMT)
commit902339e3ad99db68e59aa0262b51628a8b088156 (patch)
tree4d6375e381130c26cab03d37629bf0a5daa7d0a2
parent3996a418ff1a7791a373e278d408bad104e6c2c7 (diff)
parentc9d6a76da0906f542ce5d767601476c680b1f150 (diff)
Merge branch 'master' of git.sugarlabs.org:fractions-of-cakes/mainline
-rw-r--r--fracciones.activity/fractionlogic.py28
-rw-r--r--fracciones.activity/fractionpresentation.py2
-rwxr-xr-xfracciones.activity/gtkcake.py7
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