Пример #1
0
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()
Пример #2
0
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()
Пример #3
0
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()