Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/parentesis.activity/parentesis.py
diff options
context:
space:
mode:
Diffstat (limited to 'parentesis.activity/parentesis.py')
-rw-r--r--parentesis.activity/parentesis.py121
1 files changed, 0 insertions, 121 deletions
diff --git a/parentesis.activity/parentesis.py b/parentesis.activity/parentesis.py
deleted file mode 100644
index 21987c6..0000000
--- a/parentesis.activity/parentesis.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# -*- encoding: UTF-8 -*-
-import gtk
-from sugar.activity.activity import Activity, ActivityToolbox
-import logica
-
-ESTADO_VACIO = 0
-ESTADO_IZQ = 1
-ESTADO_DER = 2
-
-IGUAL = "="
-
-class Parentesis(Activity):
- def __init__(self, handle):
- Activity.__init__(self,handle)
-
- self.toolbox = ActivityToolbox(self)
- self.set_toolbox(self.toolbox)
-
- self.vbox = gtk.VBox()
- self.hbox = gtk.HBox()
- self.msj = gtk.Label()
- self.vbox.pack_start(self.msj)
- self.vbox.pack_start(self.hbox)
- self.set_canvas(self.vbox)
- self.show_all()
-
- self.solucion_izquierdos = set()
- self.solucion_derechos = set()
-
- self.problemas = logica.generarCasos()
- self.MostrarProblema(self.problemas.pop())
-
- def MostrarProblema(self, prob):
- for w in self.hbox.get_children():
- self.hbox.remove(w)
-
- prob_str = prob
- prob = list(prob)
- pos = 0
- boton = self.crear_boton(pos)
- self.agregar_widget(boton)
- while pos < len(prob):
- car = prob[pos]
- if car == "(":
- self.solucion_izquierdos.add(pos)
- pos = pos + 1
- elif car == ")":
- self.solucion_derechos.add(pos)
- pos = pos + 1
- else:
- car_etiqueta = gtk.Label(car)
- self.agregar_widget(car_etiqueta)
- pos = pos + 1
- boton = self.crear_boton(pos)
- self.agregar_widget(boton)
-
- igual = self.crear_boton_igual()
- self.agregar_widget(igual)
- self.agregar_widget(gtk.Label(eval(prob_str)))
-
- def agregar_widget(self, widget):
- ''' Agrega el boton a la lista de botones '''
- self.hbox.pack_start(widget)
- widget.show()
-
- def crear_boton(self, pos):
- boton = BotonParentesis(pos)
- boton.connect('clicked', self.boton_activado)
- return boton
-
- def crear_boton_igual(self):
- boton = gtk.Button(IGUAL)
- boton.connect('clicked', self.boton_igual_activado)
- return boton
-
- def boton_activado(self, boton):
- boton.iterarEstado()
-
- def boton_igual_activado(self, boton):
- respuesta_izquierdos = set()
- respuesta_derechos = set()
- for widget in self.hbox.get_children():
- if isinstance(widget,BotonParentesis):
- estado = widget.getEstado()
- if estado == ESTADO_IZQ:
- respuesta_izquierdos.add(widget.getPos())
- if estado == ESTADO_DER:
- respuesta_derechos.add(widget.getPos())
-
- if respuesta_izquierdos == self.solucion_izquierdos and respuesta_derechos == self.solucion_derechos:
- self.msj.set_label("Muy Bien!")
- self.MostrarProblema(self.problemas.pop())
- else:
- self.msj.set_label("Incorrecto")
-
-class BotonParentesis(gtk.Button):
-
- def __init__(self, pos):
- gtk.Button.__init__(self, "")
- self._pos = pos
- self._estado = ESTADO_VACIO
-
- def getPos(self):
- return self._pos
-
- def setPos(self, pos):
- self._pos = pos
-
- def iterarEstado(self):
- if self._estado == ESTADO_VACIO:
- self._estado = ESTADO_IZQ
- self.set_label("(")
- elif self._estado == ESTADO_IZQ:
- self._estado = ESTADO_DER
- self.set_label(")")
- elif self._estado == ESTADO_DER:
- self._estado = ESTADO_VACIO
- self.set_label("")
-
- def getEstado(self):
- return self._estado \ No newline at end of file