class Adivinanza(Base): def __init__(self,nombre='',datos = ''): Base.__init__(self) self.nombre = nombre self.datos = datos def iniciar(self): self.fondo() self.interfaz() self.generar() def fondo(self): pilas.fondos.Fondo("data/img/fondos/adivinanza.jpg") def interfaz(self): #Timer self.time = Temporizador(x=-250,y=300) self.time.setDatas(0) self.time.iniciar_aum() #Titulo self.texto_titulo = pilas.actores.Actor("data/img/enunciados/adivinanza.png",y=270) self.texto_titulo.escala = 0.5 #Recuadro self.recuadro = pilas.actores.Actor("data/img/interfaz/recuadrito.png",x = -20,y = 50) self.recuadro.escala = 0.4 #Personaje self.personaje = pilas.actores.Actor("data/img/iconos/character.png",y=-150) self.personaje.escala = 0.26 self.personaje.decir("Clickea en el animal al que hace referencia la adivinanza") ###dialogo #Adivinanza numero = random.randrange(0,6) self.adivinanza = adivinanzas[numero] self.texto = pilas.actores.Texto(self.adivinanza,fuente="data/fonts/American Captain.ttf", y = 50 , ancho = 256 ) self.texto.color = pilas.colores.negro def generar(self): self.lista_elemento = [] coor = [(-300,0),(280,-200),(280,200),(280,0),(-280,-200),(-280,200)] for x in range(len(lista)): self.elemento = Animal(x=coor[x][0],y=coor[x][1],imagen=lista[x]) self.elemento.escala = 0.6 self.lista_elemento.append(self.elemento) self.elemento.activar() self.elemento.conectar_presionado(self.verificar, arg=x) def verificar(self,x): self.elemento = self.lista_elemento[x] seleccion = self.elemento.getElemento() if(lista.index(seleccion)== adivinanzas.index(self.adivinanza)): self.personaje.decir("Bien hecho , ganaste un rayo de energia") self.ener = True else: self.personaje.decir("Respuesta incorrecta , perdiste un rayo") self.ener = False pilas.mundo.agregar_tarea(2,self.volver) def volver(self): self.time.stopTimer() self.datos[self.nombre]['tiempo_adivinanza'][0] = self.datos[self.nombre]['tiempo_adivinanza'][0] + self.time.getTime() self.datos[self.nombre]['tiempo_adivinanza'][1] = self.datos[self.nombre]['tiempo_adivinanza'][1] + 1 if(self.ener == False): self.datos[self.nombre]['tiempo_adivinanza'][2] = self.datos[self.nombre]['tiempo_adivinanza'][2] + 1 f = open("data/archivos/estadisticas.json","w") f.write(json.dumps(self.datos)) f.close() e = open("data/archivos/energia.txt",'wb') pickle.dump(self.ener,e) e.close() pilas.recuperar_escena()
class Ahorcado(Base): def __init__(self, nombre='',datos =''): Base.__init__(self) self.nombre = nombre archivo = open("data/archivos/usuarios.json",'r') dato = json.load(archivo) archivo.close() self.tema = dato[self.nombre]["tema_ahorcado"] self.datos = datos self.intentos = 6 def fondo(self): pilas.fondos.Fondo("data/img/fondos/ahorcado.jpg") def iniciar(self): self.fondo() self.crear_letras() self.titulo = pilas.actores.Actor("data/img/enunciados/ahorcado.png", y= 250) self.titulo.escala = 0.4 palo_ahorcado = pilas.actores.Actor('data/img/iconos/palo_ahorcado.png',x=280,y=100) palo_ahorcado.escala = 2 self.generar_palabra() def crear_letras(self): self.lista_letras = [] for x in range(len(letras)): self.actor_letra = Letra(letra=letras[x], x=cord_letras[x][0], y=cord_letras[x][1]) self.actor_letra.escala = 0.74 self.lista_letras.append(self.actor_letra) self.actor_letra.activar() self.actor_letra.conectar_presionado(self.presiona_tecla, arg=x) def presiona_tecla(self, x): self.actor_letra = self.lista_letras[x] letra_mayus = self.actor_letra.getLetra() self.letra = letra_mayus.lower() self.intentar() def generar_palabra(self): #Timer self.time = Temporizador(x=-250,y=300) self.time.setDatas(0) self.time.iniciar_aum() self.guion = [] self.letras_utilizadas = [] self.letras_adivinadas = 0 if(self.tema == 'Animales'): self.palabra = random.choice(animales) if(self.tema == 'Frutas'): self.palabra = random.choice(frutas) if(self.tema == 'Meses'): self.palabra = random.choice(meses) if(self.tema == 'Instrumentos'): self.palabra = random.choice(instrumentos) if (len(self.palabra) <= 5): self.posx = -270 for x in range(0,len(self.palabra)): self.actor_guion = pilas.actores.Actor("data/img/interfaz/guion.png",x=self.posx,y=-280) self.guion.append(self.posx) self.posx = self.posx + 100 self.actor_guion.escala = 0.12 elif(len(self.palabra) <= 9): self.posx = -400 for x in range(0,len(self.palabra)): self.actor_guion = pilas.actores.Actor("data/img/interfaz/guion.png",x=self.posx,y=-280) self.guion.append(self.posx) self.posx = self.posx + 100 self.actor_guion.escala = 0.12 else: self.posx = -450 for x in range(0,len(self.palabra)): self.actor_guion = pilas.actores.Actor("data/img/interfaz/guion.png",x=self.posx,y=-280) self.guion.append(self.posx) self.posx = self.posx + 80 self.actor_guion.escala = 0.09 def gano(self): for y in range(0,len(self.lista_letras)): self.actor_letra = self.lista_letras[y] self.actor_letra.desactivar() self.profesor = pilas.actores.Actor("data/img/iconos/profesor.png",x=500,y=-180) self.profesor.escala = 0.095 self.profesor.x = [440] self.profesor.decir('Bien echo, ganaste 1 punto mas de energia!') self.ener = True pilas.mundo.agregar_tarea(1,self.profesor.eliminar) pilas.avisar('Volviendo al tablero..') pilas.mundo.agregar_tarea(2,self.volver) def perdio(self): self.profesor = pilas.actores.Actor("data/img/iconos/profesor.png",x=500,y=-180) self.profesor.escala = 0.095 self.profesor.x = [440] self.profesor.decir('Lo siento, perdiste 1 punto de energia!') self.ener = False pilas.mundo.agregar_tarea(1,self.profesor.eliminar) pilas.avisar('Volviendo al tablero..') pilas.mundo.agregar_tarea(2,self.volver) def cuerpo(self): if(self.intentos == 5): cabeza = pilas.actores.Actor('data/img/iconos/cabeza.png',x=263,y=190) if(self.intentos == 4): torzo = pilas.actores.Pizarra() torzo.linea(263,152,263,20,pilas.colores.negro,grosor=6) if(self.intentos == 3): brazo_derecho = pilas.actores.Pizarra() brazo_derecho.linea(263,130,210,95,pilas.colores.negro,grosor=6) if(self.intentos == 2): brazo_izquierdo = pilas.actores.Pizarra() brazo_izquierdo.linea(263,130,316,95,pilas.colores.negro,grosor=6) if(self.intentos == 1): pierna_derecha = pilas.actores.Pizarra() pierna_derecha.linea(263,20,218,-34,pilas.colores.negro,grosor=6) if(self.intentos == 0): pierna_izquierda = pilas.actores.Pizarra() pierna_izquierda.linea(263,20,308,-34,pilas.colores.negro,grosor=6) self.perdio() def intentar(self): no_se_encuentra = True indice = 0 if(self.intentos == 0): self.perdio() else: if(self.letra in self.letras_utilizadas): self.profesor = pilas.actores.Actor("data/img/iconos/profesor.png",x=500,y=-180) self.profesor.escala = 0.095 self.profesor.x = [440] self.profesor.decir('Ya utilizaste esa letra!') pilas.mundo.agregar_tarea(2,self.profesor.eliminar) else: for x in self.palabra: if(self.letra == x): no_se_encuentra = False break if(no_se_encuentra == True): self.profesor = pilas.actores.Actor("data/img/iconos/profesor.png",x=500,y=-180) self.profesor.escala = 0.095 self.profesor.x = [440] self.profesor.decir('Ups, esa letra no se encuentra en la palabra!') pilas.mundo.agregar_tarea(2,self.profesor.eliminar) self.letras_utilizadas.append(self.letra) self.intentos = self.intentos-1 self.cuerpo() else: for x in self.palabra: if (self.letra==x) and (self.letras_adivinadas<len(self.palabra)): self.letra_adivinada = pilas.actores.Texto(x,fuente="data/fonts/American Captain.ttf",y=-258) self.letra_adivinada.escala = 2 self.letra_adivinada.color = pilas.colores.negro self.letra_adivinada.x = self.guion[indice] self.letras_adivinadas = self.letras_adivinadas + 1 self.letras_utilizadas.append(x) if (self.letras_adivinadas == len(self.palabra)): self.gano() indice = indice + 1 def volver(self): self.time.stopTimer() self.datos[self.nombre]['tiempo_ahorcado'][0] = self.datos[self.nombre]['tiempo_ahorcado'][0] + self.time.getTime() self.datos[self.nombre]['tiempo_ahorcado'][1] = self.datos[self.nombre]['tiempo_ahorcado'][1] + 1 if(self.ener == False): self.datos[self.nombre]['tiempo_ahorcado'][2] = self.datos[self.nombre]['tiempo_ahorcado'][2] + 1 f = open("data/archivos/estadisticas.json","w") f.write(json.dumps(self.datos)) f.close() e = open("data/archivos/energia.txt",'wb') pickle.dump(self.ener,e) e.close() pilas.recuperar_escena()
class Trabalenguas(Base): def __init__(self, nombre, datos): Base.__init__(self) self.nombre = nombre self.datos = datos def iniciar(self): self.fondo() self.explicacion() def fondo(self): pilas.fondos.Fondo('data/img/fondos/trabalenguas.jpg') def explicacion(self): self.titulo = pilas.actores.Actor( "data/img/enunciados/trabalenguas.png", y=200) self.titulo.escala = 0.5 self.explicacion_texto = pilas.actores.Actor( "data/img/interfaz/enunciado_trabalenguas.png") self.explicacion_texto.escala = 0.8 pilas.mundo.agregar_tarea(7, self.mostrar) def mostrar(self): self.explicacion_texto.eliminar() self.indice = random.randrange(0, 12) self.recuadro = pilas.actores.Actor("data/img/interfaz/recuadrito.png", x=-20, y=-20) self.recuadro.escala = 0.45 self.texto = pilas.actores.Texto( trabalenguas[self.indice], fuente="data/fonts/American Captain.ttf", ancho=256) self.texto.color = pilas.colores.negro pilas.mundo.agregar_tarea(10, self.seguir) def seguir(self): self.time = Temporizador(x=-300, y=300) self.time.setDatas(0) self.time.iniciar_aum() self.texto.eliminar() self.texto_nuevo = pilas.actores.Texto( problemas[self.indice], fuente="data/fonts/American Captain.ttf", ancho=256) self.texto_nuevo.color = pilas.colores.negro self.personaje = pilas.actores.Actor("data/img/iconos/character.png", x=700) self.personaje.escala = 0.3 self.personaje.x = [400] self.personaje.y = [-200] self.mostrar_incorrecto() def verificar(self, respuesta): respuestas = { "%s / %s" % (trabalenguas_solucion[self.indice][0], trabalenguas_solucion[self.indice][1]): "correcto", "%s / %s" % (trabalenguas_solucion[self.indice][0], trabalenguas_solucion[self.indice][2]): "incorrecto", "%s / %s" % (trabalenguas_solucion[self.indice][1], trabalenguas_solucion[self.indice][2]): "incorrecto" } if (respuestas[respuesta] == "correcto"): self.personaje.decir("Bien hecho , era la respuesta correcta") self.ener = True else: self.personaje.decir( "Respuesta incorrecta , mejor suerte la proxima") self.ener = False pilas.mundo.agregar_tarea(2, self.volver) def mostrar_incorrecto(self): dialogo = pilas.actores.Dialogo() respuesta_correcta = "%s / %s" % (trabalenguas_solucion[ self.indice][0], trabalenguas_solucion[self.indice][1]) respuesta_incorrecta1 = "%s / %s" % (trabalenguas_solucion[ self.indice][0], trabalenguas_solucion[self.indice][2]) respuesta_incorrecta2 = "%s / %s" % (trabalenguas_solucion[ self.indice][1], trabalenguas_solucion[self.indice][2]) self.opciones = [ respuesta_correcta, respuesta_incorrecta1, respuesta_incorrecta2 ] random.shuffle(self.opciones) dialogo.elegir(self.personaje, "Que palabras faltan?", self.opciones, self.verificar) pilas.mundo.agregar_tarea(2, dialogo.iniciar) def volver(self): self.time.stopTimer() self.datos[self.nombre]['tiempo_trabalenguas'][0] = self.datos[ self.nombre]['tiempo_trabalenguas'][0] + self.time.getTime() self.datos[self.nombre]['tiempo_trabalenguas'][1] = self.datos[ self.nombre]['tiempo_trabalenguas'][1] + 1 if (self.ener == False): self.datos[self.nombre]['tiempo_trabalenguas'][2] = self.datos[ self.nombre]['tiempo_trabalenguas'][2] + 1 f = open("data/archivos/estadisticas.json", "w") f.write(json.dumps(self.datos)) f.close() e = open("data/archivos/energia.txt", 'wb') pickle.dump(self.ener, e) e.close() pilas.recuperar_escena()