#!/usr/bin/env python # -*- coding: utf-8 -*- ''' TIPOSCONJUNTOS = una lista para los tipos de conjuntos. FUNCIONESOBJETOS = a cada tipo de conjunto, le corresponde un item en este diccionario donde: el key es el nombre del tipo de conjunto y el value es una función en este módulo que devuelve una lista de objetos para el tipo de conjunto seleccionado. FUNCIONESCONJUNTOS = a cada tipo de conjunto, le corresponde un item en este diccionario donde: key es el nombre del tipo de conjunto y el value es una función en este módulo que devuelve una lista de conjuntos posibles para agregar en el combo de cada conjunto. ''' import os, gtk, pygtk, math BASEDIR= os.path.dirname(__file__) Iconos= os.path.join(BASEDIR, "Iconos") Imagenes= os.path.join(BASEDIR, "Imagenes") Sonidos= os.path.join(BASEDIR, "Sonidos") def is_impar(numero): numero= float(numero) if int(math.fmod(numero,2)): return "Impares" else: return "Pares" def is_primo(numero): numero= float(numero) divisores= 0 for x in range(1, int(numero)+1): if not int(math.fmod(numero,x)): divisores+= 1 if divisores > 2: return "Compuestos" return "Primos" # ------------------------- Definición de Conjuntos y sus funciones verificadoras ------------------------------------- def get_objetos_numeros(): directorio= os.path.join(Imagenes, "Numeros") archivos= os.listdir(directorio) objetos= [] for archivo in archivos: nombre= os.path.split(archivo)[1].split(".png")[0] conjuntos= [] objetos.append(Objeto(nombre, os.path.join(directorio, archivo), [is_impar(nombre), is_primo(nombre)])) return objetos def get_objetos_animales(): directorio= os.path.join(Imagenes, "Animales") objetos= [ Objeto("perro", os.path.join(directorio, "perro.png"), ["Mamíferos", "Carnívoros"]), Objeto("gato", os.path.join(directorio, "gato.png"), ["Mamíferos", "Carnívoros"]), Objeto("mosquito", os.path.join(directorio, "mosquito.png"), ["Insectos"]), Objeto("mosca", os.path.join(directorio, "mosca.png"), ["Insectos"]), Objeto("vaca", os.path.join(directorio, "vaca.png"), ["Mamíferos", "Hervíboros"]) ] return objetos def get_conjuntos_animales(): return ["Mamíferos", "Carnívoros", "Hervíboros", "Insectos", "Prueba"] def get_conjuntos_numeros(): return ["Pares", "Impares", "Primos", "Compuestos"] TIPOSCONJUNTOS=["Números", "Animales"] FUNCIONESOBJETOS= {"Números": get_objetos_numeros, "Animales": get_objetos_animales} FUNCIONESCONJUNTOS= {"Animales": get_conjuntos_animales, "Números": get_conjuntos_numeros} # ------------------------- Definición de Conjuntos y sus funciones verificadoras ------------------------------------- # --------- OBJETO ----------- class Objeto(gtk.EventBox): def __init__(self, nombre= None, imagen= None, conjuntos= []): gtk.EventBox.__init__(self) self.set_visible_window(False) self.set_flags(gtk.CAN_FOCUS) self.set_events(gtk.gdk.EXPOSE | gtk.gdk.POINTER_MOTION_MASK | \ gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_MOTION_MASK | \ gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK) self.marca= False self.nombre= nombre self.conjuntos= conjuntos self.imagen= ImegenObjeto(imagen) self.add(self.imagen) tooltips = gtk.Tooltips() tooltips.set_tip(self, self.nombre, tip_private=None) class ImegenObjeto(gtk.Image): def __init__(self, archivo): gtk.Image.__init__(self) self.nombre= None self.pixbuf= None self.pixbuf= gtk.gdk.pixbuf_new_from_file_at_size((archivo), 80, 80) self.set_from_pixbuf(self.pixbuf) self.show() # --------- OBJETO ----------- # ---------- UTILIDADES ----------------- def lee(widget): for x in dir(widget): print x def get_lectura(widget): lista= [] for x in dir(widget): lista.append(x) return lista def get_matriz_rect(lado, colum, filas): ''' Devuelve una lista de columnas: que contiene cuadrados iguales. ''' x,y= (0,0) columnas= [] for col in range(colum): fila= [] for rect in range(filas): rectangulo= (x,y,lado,lado) fila.append(rectangulo) y+= lado columnas.append(fila) x+= lado y= 0 return columnas def creaimagennumeros(): '''Sólo para crear los números.''' import pygame pygame.init() lista= range(1,100) directorio= os.path.join(Imagenes, "Numeros") fuente = pygame.font.Font(pygame.font.get_default_font(), 30) for elem in lista: string_to_render = unicode( str(elem).decode("utf-8") ) imagen_fuente = fuente.render(string_to_render, 1, (0,0,0,255)) pygame.image.save(imagen_fuente, os.path.join(directorio, str(elem)+".png")) pygame.quit()