Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryasim <kirke@socrates.(none)>2009-07-06 00:16:42 (GMT)
committer yasim <kirke@socrates.(none)>2009-07-06 00:16:42 (GMT)
commitdd5e480d25adcb295833e84609fb8fa73f3b4c0d (patch)
tree7bb64cb19fae1ba0dd019e7d2d1b88e781814f02
parente2743a5a46cda0947e1e782c08d0df7b6a8a885a (diff)
Se borraron un monton de porquerias.
Las borro para ver si las borra del repositorio. Agregue algo de documentacion. Cambie los '*' por una equis. Habria que ver cual es el símbolo de por (x).
-rw-r--r--parentesis.activity/MANIFEST5
-rw-r--r--parentesis.activity/TODO.txt348
-rw-r--r--parentesis.activity/interfaz.py143
-rwxr-xr-x[-rw-r--r--]parentesis.activity/logica.py0
-rw-r--r--parentesis.activity/parentesis.py121
-rw-r--r--parentesis.activity/parserparentesis.py181
-rwxr-xr-xparentesis.activity/setup.py6
7 files changed, 0 insertions, 804 deletions
diff --git a/parentesis.activity/MANIFEST b/parentesis.activity/MANIFEST
deleted file mode 100644
index 0beecb7..0000000
--- a/parentesis.activity/MANIFEST
+++ /dev/null
@@ -1,5 +0,0 @@
-parentesis.py
-logica.py
-setup.py
-activity/activity-imageviewer.svg
-activity/activity.info
diff --git a/parentesis.activity/TODO.txt b/parentesis.activity/TODO.txt
deleted file mode 100644
index aa136ed..0000000
--- a/parentesis.activity/TODO.txt
+++ /dev/null
@@ -1,348 +0,0 @@
-#!/usr/bin/env python
-
-# example-start buttons buttons.py
-
-import pygtk
-pygtk.require('2.0')
-import gtk
-
-# Crea un boton con un parentesis y le da comportamiento de alternar el
-
-def crear_label_boton_paren(str):
- boton = gtk.Button()
- etiqueta = gtk.Label(str)
- boton.add(etiqueta)
-
- etiqueta.show()
- boton.show()
-
- return boton
-
-# Crea una label y la empaca en un boton
-# and pack it into a button
-def crear_label_boton(str):
- button = gtk.Button();
- etiqueta = gtk.Label(str)
- button.add(etiqueta)
- etiqueta.show()
- button.show()
-
- return button
-
-def devolver_par():
- return (3,4)
-# Create a new hbox with an image and a label packed into it
-# and return the box.
-def xpm_label_box(parent, xpm_filename, label_text):
- # Create box for xpm and label
- box1 = gtk.HBox(False, 0)
- box1.set_border_width(2)
-
- # Now on to the image stuff
- image = gtk.Image()
- image.set_from_file(xpm_filename)
-
- # Create a label for the button
- label = gtk.Label(label_text)
-
- # Pack the pixmap and label into the box
- box1.pack_start(image, False, False, 3)
- box1.pack_start(label, False, False, 3)
-
- image.show()
- label.show()
- return box1
-
-class Controlador:
- self.indiceCasoActual = 0
- self.casoLista= generarCasos()
- self.listaBotones = []
-
- def generar_botones():
- casoActual = casoLista[indiceCasoActual]
- listaBotones = []
- primerBoton = crear_label_boton("")
- self.listaBotones.append(primerBoton)
-
- for x in casoActual:
- botonChar = crear_label_boton(x)
- botonVacio = crear_label_boton("")
- self.listaBotones.append(botonChar)
- self.listaBotones.append(botonVacio)
-
-
-
-
-class Buttons:
- # Our usual callback method
- def callback(self, widget, data=None):
- print "Hello again - %s was pressed" % data
-
- def __init__(self):
- # Create a new window
- self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
-
- self.window.set_title("Image'd Buttons!")
- self.window.connect("destroy", lambda wid: gtk.main_quit())
- self.window.connect("delete_event", lambda a1,a2:gtk.main_quit())
- self.window.set_border_width(10)
-
- cajaHorz = gtk.HBox(False, 0)
-
- etiqueta = gtk.Label("PARENTESIS")
- cajaVert = gtk.VBox(False, 0)
- cajaVert.pack_start(etiqueta, True, True, 0)
-
- cajaHor = gtk.HBox(False, 0)
- button = gtk.Button()
- button.connect("clicked", self.callback, "cool button")
-
- self.listaBotones = []
- boton = crear_label_boton("(")
-
-
- cajaVert.pack_start(cajaHor, True, True, 0)
- # This calls our box creating function
- box1 = xpm_label_box(self.window, "info.xpm", "cool button")
- button.add(box1)
- cajaVert.pack_start(button, True, True, 0)
- cajaVert.show()
-
- box1.show()
- button.show()
- vscale = gtk.VScale(adjustment=None)
- hscale = gtk.HScale(adjustment=None)
-
-
- arrow = gtk.Arrow(gtk.ARROW_UP, gtk.SHADOW_IN)
- arrow.show()
- cajaVert.pack_start(arrow, True, True, 0)
-
- botonIgual = crear_label_boton("=")
- botonRes = crear_label_boton(str(eval("2+(3*4)+4") ) )
- #cajaHorz.pack_start(botonPar1, True, True, 0)
- #cajaHorz.pack_start(botonOprn1, True, True, 0)
- #cajaHorz.pack_start(botonOprd1, True, True, 0)
- #cajaHorz.pack_start(botonOprn2, True, True, 0)
- #cajaHorz.pack_start(botonPar2, True, True, 0)
- print self.listaBotones
- cosita = botonRes.set_label("alfa")
- print "la cista es", cosita
-
-
- for x in "2+(3*4)+4":
- self.listaBotones.append(x)
- if x == "(" or x == ")":
- boton = crear_label_boton(x)#crear_label_boton_paren(x)
- print x, "parentesis"
- else:
- boton = crear_label_boton(x)
- print x, "NO - parentesis"
- cajaHorz.pack_start(boton, True, True,0)
- cajaHorz.pack_start(botonIgual, True, True, 0)
- cajaHorz.pack_start(botonRes, True, True, 0)
-
-
- cajaVert.pack_start(cajaHorz, True, True, 0)
- cajaHorz.show()
- cajaVert.show()
- # self.window.add(hscale)
-# hscale.show()
-
-
- etiqueta.show()
- self.window.add(cajaVert)
- self.window.show()
-
-def main():
- gtk.main()
- return 0
-
-if __name__ == "__main__":
- Buttons()
- main()
-
-
-
---------------
-import re
-import random
-import types
-
-### Version 0.3
-## modulo logico
-
-## Definicion a manopla para formulas de nivel 1
-pattern1 = "\S*\(\S*\+\S*\)\S*" # ( ... + ... ) al menos un mas en el medio
-pattern2 = "(\+\)|\*\)|\(\+|\(\*)" # ni (+ ni (* ni +) ni *)
-pattern3 = "^\(\w*\)$" # parentesis al principio y parentesis al final
-
-CANT_NUM = 6
-def imprimirConfiguracion():
- """Usada para debug, muestra informacion del modulo"""
- print "CONSTANTES"
- print "CANT_NUM ", CANT_NUM
- print "OPERANDOS", CANT_NUM - 1
-
-
-#Tal vez deba recibir un parametro NIVEL y en funcion de eso validar o no el string.
-def validarString(s):
- """Si el string s es valido segun las convenciones lo devuelve, sino da none
-
- Returns string"""
- if re.search(pattern2, s):
- return None
- if re.search(pattern3, s):
- return None
- if re.search(pattern1, s):
- return s
- return None # en caso contrario devuelve nada
-
-
-##Funcion que testea las validaciones para todo el conjunto generado a mano de parentesis posibles
-## en un conjunto de 6 numeros
-def testearValidarStringNivelUno():
- print "COMIENZA TEST DE VALIDACION DE LECTOR DE STRING..."
- str1 = "(1*2+3)*4+5*6"
- str2 = "(1*2+3*4)+5*6"
- str3 = "(1*2+3*4+5)*6"
- str4 = "1*(2+3)*4+5*6"
- str5 = "1*(2+3*4)+5*6"
- str6 = "1*(2+3*4+5)*6"
- str7 = "1*(2+3*4+5*6)"
- str8 = "1*2+(3*4+5)*6"
- str9 = "1*2+(3*4+5*6)"
- str10= "1*2+3*(4+5)*6"
- str11= "1*2+3*(4+5*6)"
- listaStr = [str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, str11]
- errores = [validarString(s) for s in listaStr]
- if errores.count(None):
- print "Hay errores de validacion!, verificar str1 .. str11"
- else:
- print " TEST OK"
- print "FIN DEL TEST!"
-
-#notar los parametros opcionales ---remover---
-def generarListaNum(cant_num = CANT_NUM, rango_max = 9):
- """genera una lista de tamano cant_num, con numeros entre 2 y rango_max
- uqe no pueden estar repetidos"""
- if cant_num + 1 > rango_max:
- return None ### deberia de tirar una excepcion esto es MAL ESTILO TO DO
- lista = []
- while len(lista) < cant_num:
- num = random.randint(2,rango_max)
- if not lista.count(num):
- lista.append(num)
- return lista
-
-def generarListaOp(cant_op = CANT_NUM - 1):
- """ genera una lista de largo cant_op alternando * y +, empezando por *"""
- i = 1
- lista = []
- while i <= cant_op:
- if i % 2:
- lista.append('*')
- else:
- lista.append('+')
- i += 1
- return lista
-
-def alternarElementosLista(lst1, lst2):
- """ alterna los elementos de las listas, generando una lista nueva
- PRE: len(lst1) >= len(lst2)
- Retorna la lista con los elementos alternados"""
- lista = []
- largo = len(lst2)
- i = 0
- while i < largo:
- lista.append(lst1[i])
- lista.append(lst2[i])
- i += 1
- #si quedan elementos en la lista 1 los agrego
- largoNuevo = len(lst1)
- while i < largoNuevo:
- lista.append(lst1[i])
- i += 1
- return lista
-
-
-### TO DO : Discriminar segun niveles
-def generarCasos(cant_num = CANT_NUM, nivel = 1): ## TO DO!
- """Recibe un numero y devuelve una lista con todos los casos posibles y con
- los parentesis bien puestos"""
- listaNum = generarListaNum()
- listaOp = generarListaOp()
- base = alternarElementosLista(listaNum, listaOp)
- i1 = buscarProxNum(base, 0)
- res = []
- while i1 < len(base) : ## mientras tenga sentido poner un '('
- lst = base[:]
- lst.insert(i1, '(')
- i2 = i1 + 6 # lo pongo en la posicion para insertar ')'
- lst2 = lst[:]
- lst2.insert(i2, ')')
-
- aux = listaToString(lst2)
- if validarString(aux) != None:
- res.append(aux)
-
-
- while i2 < len(base): ## chequear si es menor o menor e igual TO DO
- lst2 = lst[:]
- i2 += 2
- lst2.insert(i2, ')')
- aux = listaToString(lst2)
- if validarString(aux) != None:
- res.append(aux)
-
- i1 = buscarProxNum(base, i1 + 1)
-
- ## ( 1 * 2 + 3 * 4 + 5 * 6)
- return res
-
-### Ejemplo de devolucion lista = ["(1*2+3)*4 + 5 * 6", "1*2+3 * (4+5)*6"]
-
-def listaToString(lst):
- """Transforma una lista de cualquier cosa en un string conformado por la concatenacion de str de cada elemento """
- texto = ''
- for x in lst:
- texto += str(x)
- return texto
-
-def intToChar(o):
- """Agarra un elemento, y si es un entero lo convierte a string, sino lo deja como esta"""
- if types(o) == types.IntType:
- return str(o)
-
-
-def buscarProxNum(lista, start = 0):
- """Devuelve el proximo indice en la lista donde hay un numero
- PRE: len(lista) > start
- """
-
- lst = lista[start:]
- i = start
- while len(lst) > 0 and type(lst.pop(0)) != types.IntType:
- i += 1
- return i
-
-
-### Pongo parentesis en el primer lugar que pueda --busco siguiente lugar con "numero a la derecha"
- ### Busco indice para el segundo lugar --recorro lista
- ### Si encuentro pongo y mando a testear/agregar
- ### Si no encuentro indice, avanzo el primer indice
- ###
-
-### [8, '*', 2, '+', 6, '*', 7, '+', 9, '*', 4]
-
-
-listaNum = generarListaNum()
-listaOp = generarListaOp()
-res = alternarElementosLista(listaNum, listaOp)
-
-if __name__ == "__main__":
- testearValidarStringNivelUno()
- lst = generarCasos()
- for x in lst:
- print x
-
diff --git a/parentesis.activity/interfaz.py b/parentesis.activity/interfaz.py
deleted file mode 100644
index 07d3a98..0000000
--- a/parentesis.activity/interfaz.py
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/usr/bin/env python
-
-# example-start buttons buttons.py
-
-import pygtk
-pygtk.require('2.0')
-import gtk
-
-# Crea un boton con un parentesis y le da comportamiento de alternar el
-parentesis
-def crear_label_boton_paren(str):
- boton = gtk.Button()
- etiqueta = gtk.Label(str)
- boton.add(etiqueta)
-
- etiqueta.show()
- boton.show()
-
- return boton
-
-# Crea una label y la empaca en un boton
-# and pack it into a button
-def crear_label_boton(str):
- button = gtk.Button();
- etiqueta = gtk.Label(str)
- button.add(etiqueta)
- etiqueta.show()
- button.show()
-
- return button
-
-def devolver_par():
- return (3,4)
-# Create a new hbox with an image and a label packed into it
-# and return the box.
-def xpm_label_box(parent, xpm_filename, label_text):
- # Create box for xpm and label
- box1 = gtk.HBox(False, 0)
- box1.set_border_width(2)
-
- # Now on to the image stuff
- image = gtk.Image()
- image.set_from_file(xpm_filename)
-
- # Create a label for the button
- label = gtk.Label(label_text)
-
- # Pack the pixmap and label into the box
- box1.pack_start(image, False, False, 3)
- box1.pack_start(label, False, False, 3)
-
- image.show()
- label.show()
- return box1
-
-
-
-class Buttons:
- # Our usual callback method
- def callback(self, widget, data=None):
- print "Hello again - %s was pressed" % data
-
- def __init__(self):
- # Create a new window
- self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
-
- self.window.set_title("Image'd Buttons!")
- self.window.connect("destroy", lambda wid: gtk.main_quit())
- self.window.connect("delete_event", lambda a1,a2:gtk.main_quit())
- self.window.set_border_width(10)
-
- cajaHorz = gtk.HBox(False, 0)
-
- etiqueta = gtk.Label("PARENTESIS")
- cajaVert = gtk.VBox(False, 0)
- cajaVert.pack_start(etiqueta, True, True, 0)
-
- cajaHor = gtk.HBox(False, 0)
- button = gtk.Button()
- button.connect("clicked", self.callback, "cool button")
-
- self.listaBotones = []
- boton = crear_label_boton("(")
-
-
- cajaVert.pack_start(cajaHor, True, True, 0)
- # This calls our box creating function
- box1 = xpm_label_box(self.window, "info.xpm", "cool button")
- button.add(box1)
- cajaVert.pack_start(button, True, True, 0)
- cajaVert.show()
-
- box1.show()
- button.show()
- vscale = gtk.VScale(adjustment=None)
- hscale = gtk.HScale(adjustment=None)
-
-
- arrow = gtk.Arrow(gtk.ARROW_UP, gtk.SHADOW_IN)
- arrow.show()
- cajaVert.pack_start(arrow, True, True, 0)
-
- botonIgual = crear_label_boton("=")
- botonRes = crear_label_boton(str(eval("2+(3*4)+4") ) )
- #cajaHorz.pack_start(botonPar1, True, True, 0)
- #cajaHorz.pack_start(botonOprn1, True, True, 0)
- #cajaHorz.pack_start(botonOprd1, True, True, 0)
- #cajaHorz.pack_start(botonOprn2, True, True, 0)
- #cajaHorz.pack_start(botonPar2, True, True, 0)
- print self.listaBotones
- cosita = botonRes.set_label("alfa")
- print "la cista es", cosita
- for x in "2+(3*4)+4":
- self.listaBotones.append(x)
- if x == "(" or x == ")":
- boton = crear_label_boton(x)#crear_label_boton_paren(x)
- print x, "parentesis"
- else:
- boton = crear_label_boton(x)
- print x, "NO - parentesis"
- cajaHorz.pack_start(boton, True, True,0)
- cajaHorz.pack_start(botonIgual, True, True, 0)
- cajaHorz.pack_start(botonRes, True, True, 0)
-
-
- cajaVert.pack_start(cajaHorz, True, True, 0)
- cajaHorz.show()
- cajaVert.show()
- # self.window.add(hscale)
-# hscale.show()
-
-
- etiqueta.show()
- self.window.add(cajaVert)
- self.window.show()
-
-def main():
- gtk.main()
- return 0
-
-if __name__ == "__main__":
- Buttons()
- main()
diff --git a/parentesis.activity/logica.py b/parentesis.activity/logica.py
index dbe23a1..dbe23a1 100644..100755
--- a/parentesis.activity/logica.py
+++ b/parentesis.activity/logica.py
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
diff --git a/parentesis.activity/parserparentesis.py b/parentesis.activity/parserparentesis.py
deleted file mode 100644
index 237ff41..0000000
--- a/parentesis.activity/parserparentesis.py
+++ /dev/null
@@ -1,181 +0,0 @@
-import re
-import random
-import types
-
-### Version 0.3
-## modulo logico
-
-## Definicion a manopla para formulas de nivel 1
-pattern1 = "\S*\(\S*\+\S*\)\S*" # ( ... + ... ) al menos un mas en el medio
-pattern2 = "(\+\)|\*\)|\(\+|\(\*)" # ni (+ ni (* ni +) ni *)
-pattern3 = "^\(\w*\)$" # parentesis al principio y parentesis al final
-
-CANT_NUM = 6
-def imprimirConfiguracion():
- """Usada para debug, muestra informacion del modulo"""
- print "CONSTANTES"
- print "CANT_NUM ", CANT_NUM
- print "OPERANDOS", CANT_NUM - 1
-
-
-#Tal vez deba recibir un parametro NIVEL y en funcion de eso validar o no el string.
-def validarString(s):
- """Si el string s es valido segun las convenciones lo devuelve, sino da none
-
- Returns string"""
- if re.search(pattern2, s):
- return None
- if re.search(pattern3, s):
- return None
- if re.search(pattern1, s):
- return s
- return None # en caso contrario devuelve nada
-
-
-##Funcion que testea las validaciones para todo el conjunto generado a mano de parentesis posibles
-## en un conjunto de 6 numeros
-def testearValidarStringNivelUno():
- print "COMIENZA TEST DE VALIDACION DE LECTOR DE STRING..."
- str1 = "(1*2+3)*4+5*6"
- str2 = "(1*2+3*4)+5*6"
- str3 = "(1*2+3*4+5)*6"
- str4 = "1*(2+3)*4+5*6"
- str5 = "1*(2+3*4)+5*6"
- str6 = "1*(2+3*4+5)*6"
- str7 = "1*(2+3*4+5*6)"
- str8 = "1*2+(3*4+5)*6"
- str9 = "1*2+(3*4+5*6)"
- str10= "1*2+3*(4+5)*6"
- str11= "1*2+3*(4+5*6)"
- listaStr = [str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, str11]
- errores = [validarString(s) for s in listaStr]
- if errores.count(None):
- print "Hay errores de validacion!, verificar str1 .. str11"
- else:
- print " TEST OK"
- print "FIN DEL TEST!"
-
-#notar los parametros opcionales ---remover---
-def generarListaNum(cant_num = CANT_NUM, rango_max = 9):
- """genera una lista de tamano cant_num, con numeros entre 2 y rango_max
- uqe no pueden estar repetidos"""
- if cant_num + 1 > rango_max:
- return None ### deberia de tirar una excepcion esto es MAL ESTILO TO DO
- lista = []
- while len(lista) < cant_num:
- num = random.randint(2,rango_max)
- if not lista.count(num):
- lista.append(num)
- return lista
-
-def generarListaOp(cant_op = CANT_NUM - 1):
- """ genera una lista de largo cant_op alternando * y +, empezando por *"""
- i = 1
- lista = []
- while i <= cant_op:
- if i % 2:
- lista.append('*')
- else:
- lista.append('+')
- i += 1
- return lista
-
-def alternarElementosLista(lst1, lst2):
- """ alterna los elementos de las listas, generando una lista nueva
- PRE: len(lst1) >= len(lst2)
- Retorna la lista con los elementos alternados"""
- lista = []
- largo = len(lst2)
- i = 0
- while i < largo:
- lista.append(lst1[i])
- lista.append(lst2[i])
- i += 1
- #si quedan elementos en la lista 1 los agrego
- largoNuevo = len(lst1)
- while i < largoNuevo:
- lista.append(lst1[i])
- i += 1
- return lista
-
-
-### TO DO : Discriminar segun niveles
-def generarCasos(cant_num = CANT_NUM, nivel = 1): ## TO DO!
- """Recibe un numero y devuelve una lista con todos los casos posibles y con
- los parentesis bien puestos"""
- listaNum = generarListaNum()
- listaOp = generarListaOp()
- base = alternarElementosLista(listaNum, listaOp)
- i1 = buscarProxNum(base, 0)
- res = []
- while i1 < len(base) : ## mientras tenga sentido poner un '('
- lst = base[:]
- lst.insert(i1, '(')
- i2 = i1 + 6 # lo pongo en la posicion para insertar ')'
- lst2 = lst[:]
- lst2.insert(i2, ')')
-
- aux = listaToString(lst2)
- if validarString(aux) != None:
- res.append(aux)
-
-
- while i2 < len(base): ## chequear si es menor o menor e igual TO DO
- lst2 = lst[:]
- i2 += 2
- lst2.insert(i2, ')')
- aux = listaToString(lst2)
- if validarString(aux) != None:
- res.append(aux)
-
- i1 = buscarProxNum(base, i1 + 1)
-
- ## ( 1 * 2 + 3 * 4 + 5 * 6)
- return res
-
-### Ejemplo de devolucion lista = ["(1*2+3)*4 + 5 * 6", "1*2+3 * (4+5)*6"]
-
-def listaToString(lst):
- """Transforma una lista de cualquier cosa en un string conformado por la concatenacion de str de cada elemento """
- texto = ''
- for x in lst:
- texto += str(x)
- return texto
-
-def intToChar(o):
- """Agarra un elemento, y si es un entero lo convierte a string, sino lo deja como esta"""
- if types(o) == types.IntType:
- return str(o)
-
-
-def buscarProxNum(lista, start = 0):
- """Devuelve el proximo indice en la lista donde hay un numero
- PRE: len(lista) > start
- """
-
- lst = lista[start:]
- i = start
- while len(lst) > 0 and type(lst.pop(0)) != types.IntType:
- i += 1
- return i
-
-
-### Pongo parentesis en el primer lugar que pueda --busco siguiente lugar con "numero a la derecha"
- ### Busco indice para el segundo lugar --recorro lista
- ### Si encuentro pongo y mando a testear/agregar
- ### Si no encuentro indice, avanzo el primer indice
- ###
-
-### [8, '*', 2, '+', 6, '*', 7, '+', 9, '*', 4]
-
-
-listaNum = generarListaNum()
-listaOp = generarListaOp()
-res = alternarElementosLista(listaNum, listaOp)
-
-if __name__ == "__main__":
- testearValidarStringNivelUno()
- lst = generarCasos()
- for x in lst:
- print x
-
diff --git a/parentesis.activity/setup.py b/parentesis.activity/setup.py
deleted file mode 100755
index e8d870b..0000000
--- a/parentesis.activity/setup.py
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env python
-
-from sugar.activity import bundlebuilder
-
-bundlebuilder.start()
-