def construir(self): """ Se encargara de construir toda la parte grafica """ self.fondo = Imagen(self.fondo, (0, 0)) self.fondo.cambiarEscala(0.5) self.titulo = Titulo("KACH!", 120, 450, 70, 2, (36, 32, 163)) self.lblTutorial = Titulo("Tutorial", 450, 30, 40, 2, (36, 32, 163)) self.btnContinuar = Boton("Continuar") self.btnContinuar.modificarPosicion(280, 420) self.btnContinuar.modificarTamano(160, 50) self.btnContinuar.modificarPosicionTexto(40, 27) self.btnContinuar.modificarColor1(234, 234, 216) self.btnContinuar.modificarColorLetra1(21, 67, 96) self.btnContinuar.modificarColor2(209, 210, 179) self.btnContinuar.modificarColorLetra2(21, 67, 96) self.btnContinuar.modificarColor3(91, 202, 213) self.btnContinuar.modificarColorLetra3(21, 67, 96) self.btnContinuar.modificarEvento(7) self.btnInicio = Boton("Inicio") self.btnInicio.modificarPosicion(460, 420) self.btnInicio.modificarTamano(160, 50) self.btnInicio.modificarPosicionTexto(30, 27) self.btnInicio.modificarColor1(234, 234, 216) self.btnInicio.modificarColorLetra1(21, 67, 96) self.btnInicio.modificarColor2(209, 210, 179) self.btnInicio.modificarColorLetra2(21, 67, 96) self.btnInicio.modificarColor3(91, 202, 213) self.btnInicio.modificarColorLetra3(21, 67, 96) self.btnInicio.modificarEvento(6) self.cuadro = Boton("") self.cuadro.modificarPosicion(200, 100) self.cuadro.modificarTamano(430, 300) self.cuadro.modificarPosicionTexto(30, 27) self.cuadro.modificarColor1(234, 234, 216) self.cuadro.modificarColorLetra1(21, 67, 96) self.cuadro.modificarColor2(234, 234, 216) self.cuadro.modificarColorLetra2(21, 67, 96) self.cuadro.modificarColor3(234, 234, 216) self.cuadro.modificarColorLetra3(21, 67, 96) self.cuadro.modificarEvento(0) self.mensajes() #Eventos de los botones self.controlador.enviarEventoBoton(self.btnContinuar) self.controlador.enviarEventoBoton(self.btnInicio)
def __init__(self, datoInterno): """Cargador principal del boton gestiona en general todas las propiedades del la clase @param datoInterno: Nombre que habra adentro del boton @type datoInterno: str """ self.estadoBoton = 1 #Estado actual del Boton self.color1 = (200, 176, 148) #Color sin pasar por el self.color2 = (145, 118, 86) #Color pasando por el self.color3 = (0, 0, 0) #Color cuando es seleccionado self.colorletra1 = (0, 0, 0) #Color de la letra 1 self.colorletra2 = (255, 255, 255) # Color de la letra 2 self.colorletra3 = (190, 190, 190) #Color de la letra 3 self.rectt = (100, 100, 200, 50) #Tamaño del boton self.width = 0 #Tamaño de los bordes self.string = datoInterno #nombre que va a tener que es visible self.postextoX = self.rectt[2] + 100 self.postextoY = self.rectt[3] + 25 self.texto = Titulo(self.string, self.postextoX, self.postextoY, 15, 2, self.colorletra1) self.eventoActivo = 1 self.activo = True
def actualizarBoton(self): """Actualiza el boton con alguno de los componentes cambiados""" if (self.estadoBoton == 1): self.texto = Titulo(self.string, self.postextoX, self.postextoY, 15, 2, self.colorletra1) elif (self.estadoBoton == 2): self.texto = Titulo(self.string, self.postextoX, self.postextoY, 15, 2, self.colorletra2) elif (self.estadoBoton == 3): self.texto = Titulo(self.string, self.postextoX, self.postextoY, 15, 2, self.colorletra3)
'tc' : '5,7', 'puc' : '1074,20' }, { 'tt' : 'IPCA+', 'dv' : '15/05/2035', 'db' : '23/01/2017', 'tc' : '5,56', 'puc' : '1104,54' }, { 'tt' : 'IPCA+', 'dv' : '15/05/2035', 'db' : '02/02/2017', 'tc' : '5,47', 'puc' : '1125,53' }] valores_aplicados = [305.88, 303.68, 322.26, 828.40, 438.95] precos_atuais = [1347.65, 1347.65, 1347.65, 1347.65, 1347.65] array_titulos = [] for t in titulos: titulo = Titulo(t) print(titulo) array_titulos.append(titulo) for i in range(len(array_titulos)): operation = Operation(array_titulos[i],'compra', valores_aplicados[i]) print(round(operation.calculaRendimentoTotal(precos_atuais[i], datetime.now()) * 100, 2))
class Boton(object): """Crea Botones con algunas caracteristicas generales para el menu""" def __init__(self, datoInterno): """Cargador principal del boton gestiona en general todas las propiedades del la clase @param datoInterno: Nombre que habra adentro del boton @type datoInterno: str """ self.estadoBoton = 1 #Estado actual del Boton self.color1 = (200, 176, 148) #Color sin pasar por el self.color2 = (145, 118, 86) #Color pasando por el self.color3 = (0, 0, 0) #Color cuando es seleccionado self.colorletra1 = (0, 0, 0) #Color de la letra 1 self.colorletra2 = (255, 255, 255) # Color de la letra 2 self.colorletra3 = (190, 190, 190) #Color de la letra 3 self.rectt = (100, 100, 200, 50) #Tamaño del boton self.width = 0 #Tamaño de los bordes self.string = datoInterno #nombre que va a tener que es visible self.postextoX = self.rectt[2] + 100 self.postextoY = self.rectt[3] + 25 self.texto = Titulo(self.string, self.postextoX, self.postextoY, 15, 2, self.colorletra1) self.eventoActivo = 1 self.activo = True def pintar(self, tamVentana): """ Pinta el Cuadro @param tamVentana: Tamano de la ventana @type tamVentana: Surface """ if self.activo: self.actualizarBoton() if (self.estadoBoton == 1): pygame.draw.rect(tamVentana, self.color1, self.rectt, self.width) elif (self.estadoBoton == 2): pygame.draw.rect(tamVentana, self.color2, self.rectt, self.width) elif (self.estadoBoton == 3): pygame.draw.rect(tamVentana, self.color3, self.rectt, self.width) self.texto.pintar(tamVentana) def actualizarBoton(self): """Actualiza el boton con alguno de los componentes cambiados""" if (self.estadoBoton == 1): self.texto = Titulo(self.string, self.postextoX, self.postextoY, 15, 2, self.colorletra1) elif (self.estadoBoton == 2): self.texto = Titulo(self.string, self.postextoX, self.postextoY, 15, 2, self.colorletra2) elif (self.estadoBoton == 3): self.texto = Titulo(self.string, self.postextoX, self.postextoY, 15, 2, self.colorletra3) def estaEncima(self, posX, posY): """ Revisa si las coordenadas que se dan estan dentro del boton @param posX: Posicion X que se va a revisar @type posX: int @param posY: Posicion Y que se va a revisar @type posY: int @return: Valor True o False diciendo si esta encima @rtype: bool """ if self.activo: return ((self.rectt[0] <= posX and self.rectt[1] <= posY) and ((self.rectt[0] + self.rectt[2]) >= posX) and ((self.rectt[1] + self.rectt[3]) >= posY)) return False def modificarString(self, string): """ Modifica string visible @param string: Nombre nuevo @type string: str """ self.string = string def modificarTamano(self, posX, posY): """ Modifica el tamano de los botones @param posX: tamano por X @param posY: tamano por Y @type posX: int @type posY: int """ self.rectt = (self.rectt[0], self.rectt[1], posX, posY) self.actualizarBoton() def modificarPosicion(self, tamX, tamY): """ Modifica la posicion que va a aparecer los botones @param tamX: posicion por X @param tamY: posicion por Y @type tamX: int @type tamY: int """ self.rectt = (tamX, tamY, self.rectt[2], self.rectt[3]) self.postextoX = tamX + 100 self.postextoY = tamY + 25 self.actualizarBoton() def modificarColor1(self, R, G, B): """ Modifica los colores del boton sin estar el cursor encima @param R: Seleccion del color para RGB @param G: Seleccion del color para RGB @param B: Seleccion del color para RGB @type R: int @type G: int @type B: int """ self.color1 = (R, G, B) self.actualizarBoton() def modificarColor2(self, R, G, B): """ Modifica los colores del boton estando el cursor encima @param R: Seleccion del color para RGB @param G: Seleccion del color para RGB @param B: Seleccion del color para RGB @type R: int @type G: int @type B: int """ self.color2 = (R, G, B) self.actualizarBoton() def modificarColor3(self, R, G, B): """ Modifica los colores del boton estando el cursor encima @param R: Seleccion del color para RGB @param G: Seleccion del color para RGB @param B: Seleccion del color para RGB @type R: int @type G: int @type B: int """ self.color3 = (R, G, B) self.actualizarBoton() def modificarColorLetra1(self, R, G, B): """ Modifica los colores de la letra del boton sin estar el cursor encima @param R: Seleccion del color para RGB @param G: Seleccion del color para RGB @param B: Seleccion del color para RGB @type R: int @type G: int @type B: int """ self.colorletra1 = (R, G, B) self.actualizarBoton() def modificarColorLetra2(self, R, G, B): """ Modifica los colores de la letra del boton estando el cursor encima @param R: Seleccion del color para RGB @param G: Seleccion del color para RGB @param B: Seleccion del color para RGB @type R: int @type G: int @type B: int """ self.colorletra2 = (R, G, B) self.actualizarBoton() def modificarColorLetra3(self, R, G, B): """ Modifica los colores de la letra del boton estando el cursor encima @param R: Seleccion del color para RGB @param G: Seleccion del color para RGB @param B: Seleccion del color para RGB @type R: int @type G: int @type B: int """ self.colorletra3 = (R, G, B) self.actualizarBoton() def modificarGrosor(self, width): """ Modifica el grueso del boton @param width: Ancho del borde del boton @type width: int """ self.width = width self.actualizarBoton() def modificarEstadoBoton(self, estado): """ Modifica el actual estado del boton @param estado: Estado del boton a cambiar @type estado: int """ self.estadoBoton = estado def modificarEvento(self, evento): """ Evento que se va a enlazar cuando se activa con el cursor oprimido @param evento: Numero de enlace para los eventos @type evento: int """ self.eventoActivo = evento def modificarActivo(self, activo): """ Da la posibilidad de inhabilitar el boton en cuestion, ademas de su evento @param activo: situacion actual del boton @type activo: boolean """ self.activo = activo def modificarPosicionTexto(self, posX, posY): """ Modifica la posicion en la que el texto va a aparecer para el boton @param posX: Posicion por X @param posY: Posicion por Y @type posX: int @type posY: int """ self.postextoX = self.rectt[0] + posX self.postextoY = self.rectt[1] + posY def getColor1(self): """ Retorna el valor del color (R, G, B) @return: Color actual del boton @rtype: (R, G, B) """ return self.color1 def getColor2(self): """ Retorna el valor del color2 (R, G, B) @return: Color 2 actual del boton @rtype: (R, G, B) """ return self.color2 def getColor3(self): """ Retorna el valor del color3 (R, G, B) @return: Color 3 actual del boton @rtype: (R, G, B) """ return self.color3 def getRect(self): """ Retorna el valor del boton, este tiene (TamX, TamY, PosX, PosY) @return: Datos con respecto a tamano y posicion @rtype: (TamX, TamY, PosX, PosY) """ return self.rectt def getWidth(self): """ Retorna el ancho del borde del boton @return: Ancho del borde del boton @rtype: int """ return self.width def getString(self): """ Retorna el valor del string interno @return: String interno que se muestra en el boton @rtype: str """ return self.string def getEstadoBoton(self): """ Retorna el estado del boton sea: 1. Color1, Letra1 para el boton inactivo 2. Color2, Letra2 para el boton con el cursor encima 3. Color3, Letra3 para el boton oprimido @return: Entero que da el actual estado del boton @rtype: int """ return self.estadoBoton def geteventoActivo(self): """ Retorna el Evento del Boton @return: Numero del evento del boton @rtype: int """ return self.eventoActivo def getActivo(self): """ Retorna si el evento esta activo o no @return: Boton Activo? @rtype: boolean """ return self.activo
#!/usr/bin/env python # -*- coding: utf-8 -*- # Importar modulos import pygame import director from director import Director from fase import Fase from menu import Menu from titulo import Titulo if __name__ == '__main__': pygame.font.init() # Inicializamos la libreria de pygame pygame.init() # Creamos el director director = Director() # Creamos la escena con la pantalla inicial escena = Menu(director) #escena = Fase(director,'agua.xml') escena = Titulo(director) # Le decimos al director que apile esta escena director.apilarEscena(escena) # Y ejecutamos el juego director.ejecutar() # Cuando se termine la ejecución, finaliza la librería pygame.quit()
def construir(self): self.titulo = Titulo("KACH!", 320, 50, 70, 1, (126, 81, 9)) self.titulo_terminado = Titulo("Juego Terminado!", 320, 100, 40, 3, (14, 98, 81)) self.titulo_puntaje = Titulo("Su puntaje es:", 320, 150, 30, 4, (36, 32, 163)) self.lblPuntuacion = Titulo("0", 300, 260, 180, 2, (0, 0, 0)) self.lblinstrucciones = Titulo("Presione <Enter> para continuar", 320, 440, 30, 4, (126, 81, 9)) self.lblindicacion = Titulo("Ingrese Alias:", 320, 360, 25, 3, (14, 98, 81)) self.input = TextBox((220, 380, 200, 30), command=self.enviar_reporte, clear_on_enter=True, inactive_on_enter=False)
class Terminar: def __init__(self): self.puntuacion = 0 self.color_fondo = (255, 255, 255) self.construir() self.desactivarTextBox() self.final = False def construir(self): self.titulo = Titulo("KACH!", 320, 50, 70, 1, (126, 81, 9)) self.titulo_terminado = Titulo("Juego Terminado!", 320, 100, 40, 3, (14, 98, 81)) self.titulo_puntaje = Titulo("Su puntaje es:", 320, 150, 30, 4, (36, 32, 163)) self.lblPuntuacion = Titulo("0", 300, 260, 180, 2, (0, 0, 0)) self.lblinstrucciones = Titulo("Presione <Enter> para continuar", 320, 440, 30, 4, (126, 81, 9)) self.lblindicacion = Titulo("Ingrese Alias:", 320, 360, 25, 3, (14, 98, 81)) self.input = TextBox((220, 380, 200, 30), command=self.enviar_reporte, clear_on_enter=True, inactive_on_enter=False) def activarTextBox(self): self.input.active = True def desactivarTextBox(self): self.input.active = False def pintar(self, screen): screen.fill(self.color_fondo) self.titulo.pintar(screen) self.titulo_terminado.pintar(screen) self.titulo_puntaje.pintar(screen) self.lblPuntuacion.pintar(screen) self.lblindicacion.pintar(screen) self.lblinstrucciones.pintar(screen) self.input.update() self.input.draw(screen) def eventos(self, evento): self.input.get_event(evento) def enviar_reporte(self, id, final): if (final != ""): self.conexion = Conexion() fecha = time.strftime("%y-%m-%d") self.conexion.enviar_registro(self.query_envio(), (final, fecha, self.puntuacion)) self.final = True def modificar_puntuacion(self, puntuacion): self.puntuacion = puntuacion self.lblPuntuacion.modificarTexto(str(puntuacion)) def getFinal(self): return self.final def reiniciar(self): self.final = False def query_envio(self): return ( "INSERT INTO Jugador(nombre,fecha,puntuacion) VALUES (%s, %s, %s);" )
def construir(self): """ Metodo que va a generar la construccion grafica del juego """ self.fondo = Imagen(self.fondo, (0, 0)) self.fondo.cambiarEscala(0.5) self.titulo = Titulo("KACH!", 120, 450, 70, 2, (36, 32, 163)) self.lblNivel = Titulo("Nivel 1", 550, 30, 40, 2, (36, 32, 163)) self.cuadro = Boton("") self.cuadro.modificarPosicion(10, 50) self.cuadro.modificarTamano(620, 200) self.cuadro.modificarPosicionTexto(30, 27) self.cuadro.modificarColor1(234, 234, 216) self.cuadro.modificarColorLetra1(21, 67, 96) self.cuadro.modificarColor2(234, 234, 216) self.cuadro.modificarColorLetra2(21, 67, 96) self.cuadro.modificarColor3(234, 234, 216) self.cuadro.modificarColorLetra3(21, 67, 96) self.cuadro.modificarEvento(0) self.cuadro_corazon = Boton("Vidas:") self.cuadro_corazon.modificarPosicion(10, 360) self.cuadro_corazon.modificarTamano(180, 40) self.cuadro_corazon.modificarPosicionTexto(30, 20) self.cuadro_corazon.modificarColor1(255, 255, 255) self.cuadro_corazon.modificarColorLetra1(21, 67, 96) self.cuadro_corazon.modificarColor2(255, 255, 255) self.cuadro_corazon.modificarColorLetra2(21, 67, 96) self.cuadro_corazon.modificarColor3(255, 255, 255) self.cuadro_corazon.modificarColorLetra3(21, 67, 96) self.cuadro_corazon.modificarEvento(0) self.cuadro_tiempo = Boton("Tiempo:") self.cuadro_tiempo.modificarPosicion(10, 10) self.cuadro_tiempo.modificarTamano(180, 40) self.cuadro_tiempo.modificarPosicionTexto(30, 20) self.cuadro_tiempo.modificarColor1(255, 255, 255) self.cuadro_tiempo.modificarColorLetra1(21, 67, 96) self.cuadro_tiempo.modificarColor2(255, 255, 255) self.cuadro_tiempo.modificarColorLetra2(21, 67, 96) self.cuadro_tiempo.modificarColor3(255, 255, 255) self.cuadro_tiempo.modificarColorLetra3(21, 67, 96) self.cuadro_tiempo.modificarEvento(0) self.lblTiempo = Titulo("30", 120, 32, 20, 2, (20, 90, 50)) self.cuadro_Puntuacion = Boton("Puntuacion:") self.cuadro_Puntuacion.modificarPosicion(450, 360) self.cuadro_Puntuacion.modificarTamano(180, 40) self.cuadro_Puntuacion.modificarPosicionTexto(50, 20) self.cuadro_Puntuacion.modificarColor1(255, 255, 255) self.cuadro_Puntuacion.modificarColorLetra1(21, 67, 96) self.cuadro_Puntuacion.modificarColor2(255, 255, 255) self.cuadro_Puntuacion.modificarColorLetra2(21, 67, 96) self.cuadro_Puntuacion.modificarColor3(255, 255, 255) self.cuadro_Puntuacion.modificarColorLetra3(21, 67, 96) self.cuadro_Puntuacion.modificarEvento(0) self.lblPuntuacion = Titulo("0", 590, 380, 20, 2, (36, 32, 163)) img_vidas = "view/img/corazon.jpg" self.vida1 = Imagen(img_vidas, (65, 360)) self.vida1.cambiarEscala(0.25) self.vida2 = Imagen(img_vidas, (105, 360)) self.vida2.cambiarEscala(0.25) self.vida3 = Imagen(img_vidas, (145, 360)) self.vida3.cambiarEscala(0.25) self.btnOpcion1 = Boton("Opcion1") self.btnOpcion1.modificarPosicion(30, 280) self.btnOpcion1.modificarTamano(140, 50) self.btnOpcion1.modificarPosicionTexto(60, 27) self.btnOpcion1.modificarColor1(234, 234, 216) self.btnOpcion1.modificarColorLetra1(21, 67, 96) self.btnOpcion1.modificarColor2(209, 210, 179) self.btnOpcion1.modificarColorLetra2(21, 67, 96) self.btnOpcion1.modificarColor3(91, 202, 213) self.btnOpcion1.modificarColorLetra3(21, 67, 96) self.btnOpcion1.modificarEvento(8) self.btnOpcion2 = Boton("Opcion2") self.btnOpcion2.modificarPosicion(180, 280) self.btnOpcion2.modificarTamano(140, 50) self.btnOpcion2.modificarPosicionTexto(60, 27) self.btnOpcion2.modificarColor1(234, 234, 216) self.btnOpcion2.modificarColorLetra1(21, 67, 96) self.btnOpcion2.modificarColor2(209, 210, 179) self.btnOpcion2.modificarColorLetra2(21, 67, 96) self.btnOpcion2.modificarColor3(91, 202, 213) self.btnOpcion2.modificarColorLetra3(21, 67, 96) self.btnOpcion2.modificarEvento(9) self.btnOpcion3 = Boton("Opcion3") self.btnOpcion3.modificarPosicion(330, 280) self.btnOpcion3.modificarTamano(140, 50) self.btnOpcion3.modificarPosicionTexto(60, 27) self.btnOpcion3.modificarColor1(234, 234, 216) self.btnOpcion3.modificarColorLetra1(21, 67, 96) self.btnOpcion3.modificarColor2(209, 210, 179) self.btnOpcion3.modificarColorLetra2(21, 67, 96) self.btnOpcion3.modificarColor3(91, 202, 213) self.btnOpcion3.modificarColorLetra3(21, 67, 96) self.btnOpcion3.modificarEvento(10) self.btnOpcion4 = Boton("Opcion4") self.btnOpcion4.modificarPosicion(480, 280) self.btnOpcion4.modificarTamano(140, 50) self.btnOpcion4.modificarPosicionTexto(60, 27) self.btnOpcion4.modificarColor1(234, 234, 216) self.btnOpcion4.modificarColorLetra1(21, 67, 96) self.btnOpcion4.modificarColor2(209, 210, 179) self.btnOpcion4.modificarColorLetra2(21, 67, 96) self.btnOpcion4.modificarColor3(91, 202, 213) self.btnOpcion4.modificarColorLetra3(21, 67, 96) self.btnOpcion4.modificarEvento(11) self.btnInicio = Boton("Salir") self.btnInicio.modificarPosicion(460, 420) self.btnInicio.modificarTamano(160, 50) self.btnInicio.modificarPosicionTexto(30, 27) self.btnInicio.modificarColor1(234, 234, 216) self.btnInicio.modificarColorLetra1(21, 67, 96) self.btnInicio.modificarColor2(209, 210, 179) self.btnInicio.modificarColorLetra2(21, 67, 96) self.btnInicio.modificarColor3(91, 202, 213) self.btnInicio.modificarColorLetra3(21, 67, 96) self.btnInicio.modificarEvento(6) self.pregunta = Titulo("", 320, 60, 17, 3, (36, 32, 163)) self.pregunta1 = Titulo("", 320, 90, 17, 3, (36, 32, 163)) self.pregunta2 = Titulo("", 320, 120, 17, 3, (36, 32, 163)) self.pregunta3 = Titulo("", 320, 150, 17, 3, (36, 32, 163)) self.pregunta4 = Titulo("", 320, 180, 17, 3, (36, 32, 163)) self.pregunta5 = Titulo("", 320, 210, 17, 3, (36, 32, 163)) self.pregunta6 = Titulo("", 320, 240, 17, 3, (36, 32, 163)) #Enviar al controlador self.controlador.enviarEventoBoton(self.btnOpcion1) self.controlador.enviarEventoBoton(self.btnOpcion2) self.controlador.enviarEventoBoton(self.btnOpcion3) self.controlador.enviarEventoBoton(self.btnOpcion4) self.controlador.enviarEventoBoton(self.btnInicio)
class Juego(object): """Clase que carga todo lo referente al juego""" def __init__(self, ctrl): self.controlador = ctrl self.mensaje_encriptado = "" self.mensaje_desencriptado = "" self.consulta_query = "SELECT * FROM Palabra;" self.conexion = Conexion() self.palabras = self.conexion.enviar_consulta(self.consulta_query) self.fondo = "view/img/fondos/Espera-espectral.jpg" self.abecedario = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ] self.mensajes() self.construir() self.vida_actuales = 2 self.puntuacion = 0 self.dificultad = 1 self.tiempoJuego = 0 # 1 -> Facil # 2 -> medio # 3 -> Dificil # Para implementar def mensajes(self): self.titulos = { "e_invertir": "Encriptar Invertir", "d_invertir": "Desencriptar Invertir", "e_atbash": "Encriptar Atbash", "d_atbash": "Desencriptar Atbash", "e_polibi": "Encriptar Polibi", "d_polibi": "Desencriptar Polibi", "e_cesar": "Encriptar Cesar", "d_cesar": "Desencriptar Cesar" } def construir(self): """ Metodo que va a generar la construccion grafica del juego """ self.fondo = Imagen(self.fondo, (0, 0)) self.fondo.cambiarEscala(0.5) self.titulo = Titulo("KACH!", 120, 450, 70, 2, (36, 32, 163)) self.lblNivel = Titulo("Nivel 1", 550, 30, 40, 2, (36, 32, 163)) self.cuadro = Boton("") self.cuadro.modificarPosicion(10, 50) self.cuadro.modificarTamano(620, 200) self.cuadro.modificarPosicionTexto(30, 27) self.cuadro.modificarColor1(234, 234, 216) self.cuadro.modificarColorLetra1(21, 67, 96) self.cuadro.modificarColor2(234, 234, 216) self.cuadro.modificarColorLetra2(21, 67, 96) self.cuadro.modificarColor3(234, 234, 216) self.cuadro.modificarColorLetra3(21, 67, 96) self.cuadro.modificarEvento(0) self.cuadro_corazon = Boton("Vidas:") self.cuadro_corazon.modificarPosicion(10, 360) self.cuadro_corazon.modificarTamano(180, 40) self.cuadro_corazon.modificarPosicionTexto(30, 20) self.cuadro_corazon.modificarColor1(255, 255, 255) self.cuadro_corazon.modificarColorLetra1(21, 67, 96) self.cuadro_corazon.modificarColor2(255, 255, 255) self.cuadro_corazon.modificarColorLetra2(21, 67, 96) self.cuadro_corazon.modificarColor3(255, 255, 255) self.cuadro_corazon.modificarColorLetra3(21, 67, 96) self.cuadro_corazon.modificarEvento(0) self.cuadro_tiempo = Boton("Tiempo:") self.cuadro_tiempo.modificarPosicion(10, 10) self.cuadro_tiempo.modificarTamano(180, 40) self.cuadro_tiempo.modificarPosicionTexto(30, 20) self.cuadro_tiempo.modificarColor1(255, 255, 255) self.cuadro_tiempo.modificarColorLetra1(21, 67, 96) self.cuadro_tiempo.modificarColor2(255, 255, 255) self.cuadro_tiempo.modificarColorLetra2(21, 67, 96) self.cuadro_tiempo.modificarColor3(255, 255, 255) self.cuadro_tiempo.modificarColorLetra3(21, 67, 96) self.cuadro_tiempo.modificarEvento(0) self.lblTiempo = Titulo("30", 120, 32, 20, 2, (20, 90, 50)) self.cuadro_Puntuacion = Boton("Puntuacion:") self.cuadro_Puntuacion.modificarPosicion(450, 360) self.cuadro_Puntuacion.modificarTamano(180, 40) self.cuadro_Puntuacion.modificarPosicionTexto(50, 20) self.cuadro_Puntuacion.modificarColor1(255, 255, 255) self.cuadro_Puntuacion.modificarColorLetra1(21, 67, 96) self.cuadro_Puntuacion.modificarColor2(255, 255, 255) self.cuadro_Puntuacion.modificarColorLetra2(21, 67, 96) self.cuadro_Puntuacion.modificarColor3(255, 255, 255) self.cuadro_Puntuacion.modificarColorLetra3(21, 67, 96) self.cuadro_Puntuacion.modificarEvento(0) self.lblPuntuacion = Titulo("0", 590, 380, 20, 2, (36, 32, 163)) img_vidas = "view/img/corazon.jpg" self.vida1 = Imagen(img_vidas, (65, 360)) self.vida1.cambiarEscala(0.25) self.vida2 = Imagen(img_vidas, (105, 360)) self.vida2.cambiarEscala(0.25) self.vida3 = Imagen(img_vidas, (145, 360)) self.vida3.cambiarEscala(0.25) self.btnOpcion1 = Boton("Opcion1") self.btnOpcion1.modificarPosicion(30, 280) self.btnOpcion1.modificarTamano(140, 50) self.btnOpcion1.modificarPosicionTexto(60, 27) self.btnOpcion1.modificarColor1(234, 234, 216) self.btnOpcion1.modificarColorLetra1(21, 67, 96) self.btnOpcion1.modificarColor2(209, 210, 179) self.btnOpcion1.modificarColorLetra2(21, 67, 96) self.btnOpcion1.modificarColor3(91, 202, 213) self.btnOpcion1.modificarColorLetra3(21, 67, 96) self.btnOpcion1.modificarEvento(8) self.btnOpcion2 = Boton("Opcion2") self.btnOpcion2.modificarPosicion(180, 280) self.btnOpcion2.modificarTamano(140, 50) self.btnOpcion2.modificarPosicionTexto(60, 27) self.btnOpcion2.modificarColor1(234, 234, 216) self.btnOpcion2.modificarColorLetra1(21, 67, 96) self.btnOpcion2.modificarColor2(209, 210, 179) self.btnOpcion2.modificarColorLetra2(21, 67, 96) self.btnOpcion2.modificarColor3(91, 202, 213) self.btnOpcion2.modificarColorLetra3(21, 67, 96) self.btnOpcion2.modificarEvento(9) self.btnOpcion3 = Boton("Opcion3") self.btnOpcion3.modificarPosicion(330, 280) self.btnOpcion3.modificarTamano(140, 50) self.btnOpcion3.modificarPosicionTexto(60, 27) self.btnOpcion3.modificarColor1(234, 234, 216) self.btnOpcion3.modificarColorLetra1(21, 67, 96) self.btnOpcion3.modificarColor2(209, 210, 179) self.btnOpcion3.modificarColorLetra2(21, 67, 96) self.btnOpcion3.modificarColor3(91, 202, 213) self.btnOpcion3.modificarColorLetra3(21, 67, 96) self.btnOpcion3.modificarEvento(10) self.btnOpcion4 = Boton("Opcion4") self.btnOpcion4.modificarPosicion(480, 280) self.btnOpcion4.modificarTamano(140, 50) self.btnOpcion4.modificarPosicionTexto(60, 27) self.btnOpcion4.modificarColor1(234, 234, 216) self.btnOpcion4.modificarColorLetra1(21, 67, 96) self.btnOpcion4.modificarColor2(209, 210, 179) self.btnOpcion4.modificarColorLetra2(21, 67, 96) self.btnOpcion4.modificarColor3(91, 202, 213) self.btnOpcion4.modificarColorLetra3(21, 67, 96) self.btnOpcion4.modificarEvento(11) self.btnInicio = Boton("Salir") self.btnInicio.modificarPosicion(460, 420) self.btnInicio.modificarTamano(160, 50) self.btnInicio.modificarPosicionTexto(30, 27) self.btnInicio.modificarColor1(234, 234, 216) self.btnInicio.modificarColorLetra1(21, 67, 96) self.btnInicio.modificarColor2(209, 210, 179) self.btnInicio.modificarColorLetra2(21, 67, 96) self.btnInicio.modificarColor3(91, 202, 213) self.btnInicio.modificarColorLetra3(21, 67, 96) self.btnInicio.modificarEvento(6) self.pregunta = Titulo("", 320, 60, 17, 3, (36, 32, 163)) self.pregunta1 = Titulo("", 320, 90, 17, 3, (36, 32, 163)) self.pregunta2 = Titulo("", 320, 120, 17, 3, (36, 32, 163)) self.pregunta3 = Titulo("", 320, 150, 17, 3, (36, 32, 163)) self.pregunta4 = Titulo("", 320, 180, 17, 3, (36, 32, 163)) self.pregunta5 = Titulo("", 320, 210, 17, 3, (36, 32, 163)) self.pregunta6 = Titulo("", 320, 240, 17, 3, (36, 32, 163)) #Enviar al controlador self.controlador.enviarEventoBoton(self.btnOpcion1) self.controlador.enviarEventoBoton(self.btnOpcion2) self.controlador.enviarEventoBoton(self.btnOpcion3) self.controlador.enviarEventoBoton(self.btnOpcion4) self.controlador.enviarEventoBoton(self.btnInicio) def activar_botones(self): self.btnOpcion1.modificarActivo(True) self.btnOpcion2.modificarActivo(True) self.btnOpcion3.modificarActivo(True) self.btnOpcion4.modificarActivo(True) self.btnInicio.modificarActivo(True) def desactivar_botones(self): self.btnOpcion1.modificarActivo(False) self.btnOpcion2.modificarActivo(False) self.btnOpcion3.modificarActivo(False) self.btnOpcion4.modificarActivo(False) self.btnInicio.modificarActivo(False) def reiniciar(self): #self.seleccionar_pregunta() self.vida_actuales = 2 self.puntuacion = 0 self.dificultad = 1 def num_aleatorio(self, ini, fin): return random.randint(ini, fin) def pintar(self, screen, tiempo): """ Pinta en pantalla la parte grafica @param screen: Pantalla en la que se va a pintar @type screen: Surface """ self.fondo.ponerImagen(screen) self.titulo.pintar(screen) self.lblNivel.pintar(screen) self.cuadro.pintar(screen) self.cuadro_corazon.pintar(screen) self.cuadro_tiempo.pintar(screen) self.cuadro_Puntuacion.pintar(screen) self.tiempoJuego = tiempo if (tiempo <= 3): self.lblTiempo.modificarColor((148, 49, 38)) elif (tiempo <= 6): self.lblTiempo.modificarColor((229, 175, 32)) else: self.lblTiempo.modificarColor((91, 229, 69)) self.lblTiempo.modificarTexto(str(tiempo)) self.lblTiempo.pintar(screen) self.lblPuntuacion.modificarTexto(str(self.puntuacion)) self.lblPuntuacion.pintar(screen) if (self.vida_actuales == 2): self.vida1.ponerImagen(screen) self.vida2.ponerImagen(screen) self.vida3.ponerImagen(screen) elif (self.vida_actuales == 1): self.vida1.ponerImagen(screen) self.vida2.ponerImagen(screen) elif (self.vida_actuales == 0): self.vida1.ponerImagen(screen) else: #GAME OVER pass self.pregunta.pintar(screen) self.pregunta1.pintar(screen) self.pregunta2.pintar(screen) self.pregunta3.pintar(screen) self.pregunta4.pintar(screen) self.pregunta5.pintar(screen) self.pregunta6.pintar(screen) self.btnOpcion1.pintar(screen) self.btnOpcion2.pintar(screen) self.btnOpcion3.pintar(screen) self.btnOpcion4.pintar(screen) self.btnInicio.pintar(screen) def seleccionar_pregunta(self): self.pregunta.modificarTexto("") self.pregunta1.modificarTexto("") self.pregunta2.modificarTexto("") self.pregunta3.modificarTexto("") self.pregunta4.modificarTexto("") self.pregunta5.modificarTexto("") self.pregunta6.modificarTexto("") self.btnOpcion1.modificarString("") self.btnOpcion2.modificarString("") self.btnOpcion3.modificarString("") self.btnOpcion4.modificarString("") tipo = self.num_aleatorio(1, 2) #decidira si es encriptar o desencriptar #1 -> encriptar #2 -> Desencriptar if (tipo == 1): tipo = self.num_aleatorio(0, len(self.palabras) - 1) (_, self.mensaje_desencriptado) = self.palabras[tipo] tipo = self.num_aleatorio(1, 4) self.pregunta1.modificarTexto("La Palabra a Encriptar es:") if (tipo == 1): #Invertida self.pregunta.modificarTexto(self.titulos["e_invertir"]) self.mensaje_encriptado = self.lista_to_str_espaciado( self.invetirOracion(self.mensaje_desencriptado)) self.pregunta2.modificarTexto(self.mensaje_desencriptado) self.pregunta3.modificarTexto( "Seleccione la encriptacion correcta") tipo = self.num_aleatorio(1, 4) #Pone el correcto if (tipo == 1): self.btnOpcion1.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) self.btnOpcion3.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) self.btnOpcion4.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) elif (tipo == 2): self.btnOpcion2.modificarString(self.mensaje_encriptado) self.btnOpcion1.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) self.btnOpcion3.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) self.btnOpcion4.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) elif (tipo == 3): self.btnOpcion3.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) self.btnOpcion1.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) self.btnOpcion4.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) elif (tipo == 4): self.btnOpcion4.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) self.btnOpcion3.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) self.btnOpcion1.modificarString( self.lista_to_str_espaciado( self.invetirOracion( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1]))) elif (tipo == 2): #encriptar ATBASH self.pregunta.modificarTexto(self.titulos["e_atbash"]) self.mensaje_encriptado = self.encriptar_atbash( self.mensaje_desencriptado) self.pregunta2.modificarTexto(self.mensaje_desencriptado) self.pregunta4.modificarTexto( self.lista_to_str_espaciado(self.abecedario)) self.pregunta5.modificarTexto( self.lista_to_str_espaciado(reversed(self.abecedario))) self.pregunta6.modificarTexto( "Seleccione la encripcion Correcta") tipo = self.num_aleatorio(1, 4) #Pone el correcto if (tipo == 1): self.btnOpcion1.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion3.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion4.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) elif (tipo == 2): self.btnOpcion2.modificarString(self.mensaje_encriptado) self.btnOpcion1.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion3.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion4.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) elif (tipo == 3): self.btnOpcion3.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion1.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion4.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) elif (tipo == 4): self.btnOpcion4.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion3.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion1.modificarString( self.encriptar_atbash(self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) elif (tipo == 3): #encriptar Polibi self.pregunta.modificarTexto(self.titulos["e_polibi"]) self.mensaje_encriptado = self.encriptar_polibi_5( self.mensaje_desencriptado) self.pregunta2.modificarTexto(self.mensaje_desencriptado) self.pregunta5.modificarTexto( "Seleccione la encripcion Correcta") tipo = self.num_aleatorio(1, 4) #Pone el correcto if (tipo == 1): self.btnOpcion1.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion3.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion4.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) elif (tipo == 2): self.btnOpcion2.modificarString(self.mensaje_encriptado) self.btnOpcion1.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion3.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion4.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) elif (tipo == 3): self.btnOpcion3.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion1.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion4.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) elif (tipo == 4): self.btnOpcion4.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion3.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) self.btnOpcion1.modificarString( self.encriptar_polibi_5( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1])) elif (tipo == 4): #encriptar cesar self.pregunta.modificarTexto(self.titulos["e_cesar"]) self.mensaje_encriptado = self.CodificarCesar( self.mensaje_desencriptado, 3) self.pregunta2.modificarTexto(self.mensaje_desencriptado) self.pregunta4.modificarTexto( self.lista_to_str_espaciado(self.abecedario)) self.pregunta5.modificarTexto( self.lista_to_str_espaciado(reversed(self.abecedario))) self.pregunta6.modificarTexto( "Seleccione la encripcion Correcta") tipo = self.num_aleatorio(1, 4) #Pone el correcto if (tipo == 1): self.btnOpcion1.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) self.btnOpcion3.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) self.btnOpcion4.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) elif (tipo == 2): self.btnOpcion2.modificarString(self.mensaje_encriptado) self.btnOpcion1.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) self.btnOpcion3.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) self.btnOpcion4.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) elif (tipo == 3): self.btnOpcion3.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) self.btnOpcion1.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) self.btnOpcion4.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) elif (tipo == 4): self.btnOpcion4.modificarString(self.mensaje_encriptado) self.btnOpcion2.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) self.btnOpcion3.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) self.btnOpcion1.modificarString( self.CodificarCesar( self.palabras[self.num_aleatorio( 0, len(self.palabras) - 1)][1], 3)) else: tipo = self.num_aleatorio(0, len(self.palabras) - 1) (_, self.mensaje_desencriptado) = self.palabras[tipo] tipo = self.num_aleatorio(1, 4) self.pregunta1.modificarTexto("La Palabra a Desencriptar es:") if (tipo == 1): #Invertida self.pregunta.modificarTexto(self.titulos["d_invertir"]) self.mensaje_encriptado = self.lista_to_str_espaciado( self.invetirOracion(self.mensaje_desencriptado)) self.pregunta2.modificarTexto(self.mensaje_encriptado) self.pregunta3.modificarTexto( "Seleccione la Desencripcion correcta") elif (tipo == 2): #encriptar ATBASH self.pregunta.modificarTexto(self.titulos["d_atbash"]) self.mensaje_encriptado = self.encriptar_atbash( self.mensaje_desencriptado) self.pregunta2.modificarTexto(self.mensaje_encriptado) self.pregunta4.modificarTexto( self.lista_to_str_espaciado(self.abecedario)) self.pregunta5.modificarTexto( self.lista_to_str_espaciado(reversed(self.abecedario))) self.pregunta6.modificarTexto( "Seleccione la encripcion Correcta") elif (tipo == 3): #encriptar Polibi self.pregunta.modificarTexto(self.titulos["d_polibi"]) self.mensaje_encriptado = self.encriptar_polibi_5( self.mensaje_desencriptado) self.pregunta2.modificarTexto(self.mensaje_encriptado) self.pregunta5.modificarTexto( "Seleccione la encripcion Correcta") elif (tipo == 4): #encriptar cesar self.pregunta.modificarTexto(self.titulos["d_cesar"]) self.mensaje_encriptado = self.CodificarCesar( self.mensaje_desencriptado, 3) self.pregunta2.modificarTexto(self.mensaje_encriptado) self.pregunta4.modificarTexto( self.lista_to_str_espaciado(self.abecedario)) self.pregunta5.modificarTexto( self.lista_to_str_espaciado(reversed(self.abecedario))) self.pregunta6.modificarTexto( "Seleccione la encripcion Correcta") tipo = self.num_aleatorio(1, 4) #Pone el correcto if (tipo == 1): self.btnOpcion1.modificarString(self.mensaje_desencriptado) self.btnOpcion2.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) self.btnOpcion3.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) self.btnOpcion4.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) elif (tipo == 2): self.btnOpcion2.modificarString(self.mensaje_desencriptado) self.btnOpcion1.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) self.btnOpcion3.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) self.btnOpcion4.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) elif (tipo == 3): self.btnOpcion3.modificarString(self.mensaje_desencriptado) self.btnOpcion2.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) self.btnOpcion1.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) self.btnOpcion4.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) elif (tipo == 4): self.btnOpcion4.modificarString(self.mensaje_desencriptado) self.btnOpcion2.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) self.btnOpcion3.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) self.btnOpcion1.modificarString( self.palabras[self.num_aleatorio(0, len(self.palabras) - 1)][1]) def modificar_tiempo(self, tiempo): self.tiempo = tiempo def quitar_vida(self): self.vida_actuales -= 1 def get_vidas_actuales(self): return self.vida_actuales def get_puntuacion(self): return self.puntuacion def compararOpcion(self, opcion): return opcion == self.mensaje_encriptado or opcion == self.mensaje_desencriptado def sumarPuntaje(self): self.puntuacion += self.tiempoJuego def invertirPalabra(self, palabra): """ Invierte Palabra:: "Hola" -> "aloH" @param palabra: palabra que se va a invertir @type palabra: str @return: Palabra convertida @rtype: str """ return ''.join(reversed(palabra)) def invetirOracion(self, Oracion): """ Invierte Oracion, pero retorna una lista:: "Hola Mundo" -> ["aloH", "odnuM"] @param palabra: Oracion que se va a invertir @type palabra: str @return: Lista con Oracion Convertida @rtype: list """ lista = Oracion.split() return list(map(self.invertirPalabra, lista)) def lista_to_str_espaciado(self, lista): """ Imprime con espaciado una lista:: ["aloH", "odnuM"] -> "aloH odnuM" @param lista: Lista que se va a convertir @type lista: list @return: Oracion de la lista con espacios @rtype: str """ return " ".join(lista) def encriptar_atbash(self, message): """ Metodo que encripta con metodo atbash:: Con el alfabeto A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Z Y X W V U T S R Q P O Ñ N M L K J I H G F E D C B A ---------------------------------------------------- Lo que trata de hacer es modificar la letra de arriba con la respectiva de abajo, el ejemplo: "HOLA MUNDO" -> "SLOZ ÑFNWL" @param message: mensaje a Encriptar @type message: str @return: mensaje encriptado @rtype: str """ alphabet = u'A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z a b c d e f g h i j k l m n ñ o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9'.split( ) backward = u'Z Y X W V U T S R Q P O Ñ N M L K J I H G F E D C B A z y x w v u t s r q p o ñ n m l k j i h g f e d c b a 9 8 7 6 5 4 3 2 1 0'.split( ) cipher = [] for letter in message: if letter in alphabet: for i in xrange(len(alphabet)): if alphabet[i] == letter: pos = i cipher.append(backward[pos]) else: cipher.append(letter) newMessage = ''.join(cipher) return newMessage def desencriptar_atbash(self, message): """ Metodo para desencriptar con metodo atbash:: Con el alfabeto A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Z Y X W V U T S R Q P O Ñ N M L K J I H G F E D C B A ---------------------------------------------------- Lo que trata de hacer es modificar la letra de arriba con la respectiva de abajo, el ejemplo: "SLOZ ÑFNWL" -> "HOLA MUNDO" @param message: mensaje a Desencriptar @type message: str @return: mensaje Desencriptado @rtype: str """ alphabet = u'A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z a b c d e f g h i j k l m n ñ o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9'.split( ) backward = u'Z Y X W V U T S R Q P O Ñ N M L K J I H G F E D C B A z y x w v u t s r q p o ñ n m l k j i h g f e d c b a 9 8 7 6 5 4 3 2 1 0'.split( ) cipher = [] for letter in message: if letter in backward: for i in xrange(len(backward)): if backward[i] == letter: pos = i cipher.append(alphabet[pos]) else: cipher.append(letter) newMessage = ''.join(cipher) return newMessage def codificar_polibi_5(self, char): """ Codifica una letra en formato polibi:: "H" -> (3,3) como ejemplo @param char: caracter a convertir @type char: str @return: Tupla con el valor convertido en polibi @rtype: (a, b) """ alfabeto = "abcdefghiklmnopqrstuvwxyz" tup = (0, 0) if char: if alfabeto.find(char) <= 5: tup = (1, alfabeto.find(char) + 1) elif alfabeto.find(char) <= 10: tup = (2, (alfabeto.find(char) + 1) - 5) elif alfabeto.find(char) <= 15: tup = (3, (alfabeto.find(char) + 1) - 10) elif alfabeto.find(char) <= 20: tup = (4, (alfabeto.find(char) + 1) - 15) elif alfabeto.find(char) <= 25: tup = (5, (alfabeto.find(char) + 1) - 20) return "".join(map(str, tup)) def encriptar_str_polibi_5(self, texto): """ Encripta una palabra a codigo polibi:: "HOLA" -> [(1,2),(2,3),(3,4),(4,5)] @param texto: Palabra a encriptar @type texto: str @return: Lista encriptada en polibi @rtype: [(a,b),(c,d)] """ return " ".join(map(self.codificar_polibi_5, texto)) def encriptar_polibi_5(self, mensaje): """ Encripta una palabra convertida y las une como una lista, imprime un str :: "HOLA MUNDO" -> "(1,1),(1,2),(1,3),(1,4)-(2,1),(2,2),(2,3),(2,4),(2,5)" @param mensaje: Mensaje a encriptar @type mensaje: str @return: str con mensaje encriptado @rtype: str """ mensaje = mensaje.replace("j", "i") lista = mensaje.split() lista = map(self.encriptar_str_polibi_5, lista) return "-".join(lista) #return self.lista_to_str_espaciado(lista) def CodificarCesar(self, Palabra, Avance): """ Codifica Mensaje con codficacion atbas, sin embargo, el orden del abecderio no es el mismo:: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Y X W V U T S R Q P O Ñ N M L K J I H G F E D C B A Z ------------------------------------------------------ @param Palabra: Palabra a criptar @type Palabra: str @param Avance: avance o cambio de orden del abecedario @type Avance: int @return: Palabra invertida @rtype: str """ alfabetoMinus = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ] alfabetoMayus = [ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ñ', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ] Clave = '' Tope = len(alfabetoMayus) Posicion = 0 for letra in Palabra: for i in range(Tope): if (i + Avance < Tope): Posicion = i + Avance else: Posicion = abs((Tope - i) - Avance) if letra == alfabetoMinus[i]: Clave = Clave + alfabetoMinus[Posicion] elif letra == alfabetoMayus[i]: Clave = Clave + alfabetoMayus[Posicion] return Clave
def mensajes(self): """Mensajes que se podran mostrar en el tutorial""" texto1 = [] texto1.append( Titulo("Existen diferentes metodos para", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("transformar un mensaje.", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("A lo largo de la historia se han creado", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("diferentes formas de codificar la", 420, 180, 17, 2, (36, 32, 163))) texto1.append(Titulo("informacion.", 420, 200, 17, 2, (36, 32, 163))) texto1.append( Titulo("En este juego veremos 7 metodos de", 420, 220, 17, 2, (36, 32, 163))) texto1.append( Titulo("<<Encriptar>> y <<Desencriptar>> un mensaje.", 420, 240, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Oculto en la Tabla", 420, 260, 17, 2, (36, 32, 163))) texto1.append(Titulo("-Invertir", 420, 280, 17, 2, (36, 32, 163))) texto1.append(Titulo("-Codigo ATBAS", 420, 300, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Cifra de Polibi", 420, 320, 17, 2, (36, 32, 163))) texto1.append(Titulo("-Cifra de Cesar", 420, 340, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Rejilla Giratoria", 420, 360, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append( Titulo("Oculto en la Tabla", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("El objetivo de oculto en la tabla es relacionar", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("un significado con respecto a otro asi si:", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("Asi relacionariamos <<Estrella>> con <<Entrar>>", 420, 280, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append(Titulo("Invertir", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("El objetivo de este metodo es invertir las", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("palabras para que estas no sean legibles", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("a simple vista y que por ende esten del", 420, 180, 17, 2, (36, 32, 163))) texto1.append( Titulo("todo complicadas, un ejemplo que se puede", 420, 200, 17, 2, (36, 32, 163))) texto1.append(Titulo("apreciar:", 420, 220, 17, 2, (36, 32, 163))) texto1.append( Titulo("<<Mensaje Secreto>> a la hora de invertir", 420, 260, 17, 2, (36, 32, 163))) texto1.append( Titulo("seria <<Ejasnem Oterces>>", 420, 280, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append(Titulo("Codigo Atbas", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("El codigo ATBAS es un codigo utilizado en algunos", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("textos religiosos hebreos, el objetivo de este", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("metodo es desorganizar el abecedario para que", 420, 180, 17, 2, (36, 32, 163))) texto1.append( Titulo("las palabras del uno sean diferentes que las", 420, 200, 17, 2, (36, 32, 163))) texto1.append( Titulo("del otro tomando con un significado el que valga", 420, 220, 17, 2, (36, 32, 163))) texto1.append( Titulo("para que esta regla se cumpla, este necesita de", 420, 240, 17, 2, (36, 32, 163))) texto1.append( Titulo("una tabla de valores como el mostrado:", 420, 260, 17, 2, (36, 32, 163))) texto1.append( Titulo("Asi si, <<Criptografia>> seria <<Xirkgltizurz>>", 420, 380, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append(Titulo("Cifra de Polibi", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("Descrito por el historiador del siglo III a.C.,", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("para codificar cada letra utiliza una tabla de", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("doble entrada, en la que cada letra viene", 420, 180, 17, 2, (36, 32, 163))) texto1.append( Titulo("representada por dos numeros:", 420, 200, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append(Titulo("Cifra de Polibi", 420, 120, 17, 2, (36, 32, 163))) texto1.append(Titulo("Ejemplo:", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("Se pueden utilizar algunos esquemas graficos", 420, 240, 17, 2, (36, 32, 163))) texto1.append( Titulo("para codificar, las manos en este caso", 420, 260, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append(Titulo("Cifra de Cesar", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("El metodo de Cesar consiste en desplazar", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("cualquier alfabeto. La clave del codigo sera el", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("numero de lugares que se desplaza. Muy similar", 420, 180, 17, 2, (36, 32, 163))) texto1.append( Titulo("al codigo ATBAS, un ejemplo seria:", 420, 200, 17, 2, (36, 32, 163))) texto1.append( Titulo("La codificacion seria de la siguiente manera:", 420, 300, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append( Titulo("Rejilla Giratoria", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("Lo primero que debe hacerse es fabricar una", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("tapadera. La rejilla se construye de forma que:", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Tenga tantos huecos como la cuarta parte del", 420, 180, 17, 2, (36, 32, 163))) texto1.append( Titulo("total de la rejilla", 420, 200, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Al girar hasta cuatro veces, una casilla no", 420, 220, 17, 2, (36, 32, 163))) texto1.append( Titulo("puede quedar destapada dos veces", 420, 240, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Todas las casillas han de quedar destapadas", 420, 260, 17, 2, (36, 32, 163))) texto1.append(Titulo("alguna vez", 420, 280, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append( Titulo("Rejilla Giratoria", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("seria para mostrar una tabla del estilo:", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("la idea es tapar cada uno de los cuadros no", 420, 300, 17, 2, (36, 32, 163))) texto1.append(Titulo("necesarios", 420, 320, 17, 2, (36, 32, 163))) self.textos.append(texto1)
class Tutorial: """Clase enfocada en todo lo que carga el tutorial""" def __init__(self, ctrl): """ Constructor del Tutorial @param ctrl: controlador del los eventos @type ctrl: Controlador """ self.controlador = ctrl self.fondo = "view/img/fondos/España.jpg" self.textos = [] self.textoActual = 0 #Cargar Mensajes y ponerlos en la matriz de los textos self.construir() self.construirTabla1() #Imagen ATBAS self.ImagenAtbas = Imagen("view/img/codigoAtbas.png", (10, 270)) self.ImagenAtbas.cambiarEscala(0.65) #Cifra de Polibi self.tablaPolibi = Imagen("view/img/polibi.png", (285, 240)) self.tablaPolibi.cambiarEscala(0.5) self.manoPolibi = Imagen("view/img/polibiManoEje.png", (380, 300)) self.manoPolibi.cambiarEscala(0.4) self.polibiEje = Imagen("view/img/polibiCodi.png", (300, 160)) self.polibiEje.cambiarEscala(0.5) #Cesar self.cesar = Imagen("view/img/Cesar.png", (10, 230)) self.cesar.cambiarEscala(0.65) self.cesarEjemplo = Imagen("view/img/cesarEjemplo.png", (300, 330)) self.cesarEjemplo.cambiarEscala(0.5) #Rejilla self.rejilla = Imagen("view/img/Rejilla.png", (350, 300)) self.rejilla.cambiarEscala(0.6) self.rejillaEjemplo = Imagen("view/img/RejillaEjemplo.png", (340, 180)) self.rejillaEjemplo.cambiarEscala(0.6) def mensajes(self): """Mensajes que se podran mostrar en el tutorial""" texto1 = [] texto1.append( Titulo("Existen diferentes metodos para", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("transformar un mensaje.", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("A lo largo de la historia se han creado", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("diferentes formas de codificar la", 420, 180, 17, 2, (36, 32, 163))) texto1.append(Titulo("informacion.", 420, 200, 17, 2, (36, 32, 163))) texto1.append( Titulo("En este juego veremos 7 metodos de", 420, 220, 17, 2, (36, 32, 163))) texto1.append( Titulo("<<Encriptar>> y <<Desencriptar>> un mensaje.", 420, 240, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Oculto en la Tabla", 420, 260, 17, 2, (36, 32, 163))) texto1.append(Titulo("-Invertir", 420, 280, 17, 2, (36, 32, 163))) texto1.append(Titulo("-Codigo ATBAS", 420, 300, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Cifra de Polibi", 420, 320, 17, 2, (36, 32, 163))) texto1.append(Titulo("-Cifra de Cesar", 420, 340, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Rejilla Giratoria", 420, 360, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append( Titulo("Oculto en la Tabla", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("El objetivo de oculto en la tabla es relacionar", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("un significado con respecto a otro asi si:", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("Asi relacionariamos <<Estrella>> con <<Entrar>>", 420, 280, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append(Titulo("Invertir", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("El objetivo de este metodo es invertir las", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("palabras para que estas no sean legibles", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("a simple vista y que por ende esten del", 420, 180, 17, 2, (36, 32, 163))) texto1.append( Titulo("todo complicadas, un ejemplo que se puede", 420, 200, 17, 2, (36, 32, 163))) texto1.append(Titulo("apreciar:", 420, 220, 17, 2, (36, 32, 163))) texto1.append( Titulo("<<Mensaje Secreto>> a la hora de invertir", 420, 260, 17, 2, (36, 32, 163))) texto1.append( Titulo("seria <<Ejasnem Oterces>>", 420, 280, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append(Titulo("Codigo Atbas", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("El codigo ATBAS es un codigo utilizado en algunos", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("textos religiosos hebreos, el objetivo de este", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("metodo es desorganizar el abecedario para que", 420, 180, 17, 2, (36, 32, 163))) texto1.append( Titulo("las palabras del uno sean diferentes que las", 420, 200, 17, 2, (36, 32, 163))) texto1.append( Titulo("del otro tomando con un significado el que valga", 420, 220, 17, 2, (36, 32, 163))) texto1.append( Titulo("para que esta regla se cumpla, este necesita de", 420, 240, 17, 2, (36, 32, 163))) texto1.append( Titulo("una tabla de valores como el mostrado:", 420, 260, 17, 2, (36, 32, 163))) texto1.append( Titulo("Asi si, <<Criptografia>> seria <<Xirkgltizurz>>", 420, 380, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append(Titulo("Cifra de Polibi", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("Descrito por el historiador del siglo III a.C.,", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("para codificar cada letra utiliza una tabla de", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("doble entrada, en la que cada letra viene", 420, 180, 17, 2, (36, 32, 163))) texto1.append( Titulo("representada por dos numeros:", 420, 200, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append(Titulo("Cifra de Polibi", 420, 120, 17, 2, (36, 32, 163))) texto1.append(Titulo("Ejemplo:", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("Se pueden utilizar algunos esquemas graficos", 420, 240, 17, 2, (36, 32, 163))) texto1.append( Titulo("para codificar, las manos en este caso", 420, 260, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append(Titulo("Cifra de Cesar", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("El metodo de Cesar consiste en desplazar", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("cualquier alfabeto. La clave del codigo sera el", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("numero de lugares que se desplaza. Muy similar", 420, 180, 17, 2, (36, 32, 163))) texto1.append( Titulo("al codigo ATBAS, un ejemplo seria:", 420, 200, 17, 2, (36, 32, 163))) texto1.append( Titulo("La codificacion seria de la siguiente manera:", 420, 300, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append( Titulo("Rejilla Giratoria", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("Lo primero que debe hacerse es fabricar una", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("tapadera. La rejilla se construye de forma que:", 420, 160, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Tenga tantos huecos como la cuarta parte del", 420, 180, 17, 2, (36, 32, 163))) texto1.append( Titulo("total de la rejilla", 420, 200, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Al girar hasta cuatro veces, una casilla no", 420, 220, 17, 2, (36, 32, 163))) texto1.append( Titulo("puede quedar destapada dos veces", 420, 240, 17, 2, (36, 32, 163))) texto1.append( Titulo("-Todas las casillas han de quedar destapadas", 420, 260, 17, 2, (36, 32, 163))) texto1.append(Titulo("alguna vez", 420, 280, 17, 2, (36, 32, 163))) self.textos.append(texto1) texto1 = [] texto1.append( Titulo("Rejilla Giratoria", 420, 120, 17, 2, (36, 32, 163))) texto1.append( Titulo("seria para mostrar una tabla del estilo:", 420, 140, 17, 2, (36, 32, 163))) texto1.append( Titulo("la idea es tapar cada uno de los cuadros no", 420, 300, 17, 2, (36, 32, 163))) texto1.append(Titulo("necesarios", 420, 320, 17, 2, (36, 32, 163))) self.textos.append(texto1) def construirTabla1(self): """Metodo que construye la primera tabla""" self.tablaPalabra = Boton("Palabra") self.tablaPalabra.modificarPosicion(340, 180) self.tablaPalabra.modificarTamano(100, 40) self.tablaPalabra.modificarPosicionTexto(50, 20) self.tablaPalabra.modificarColor1(203, 67, 53) self.tablaPalabra.modificarColor2(176, 58, 46) self.tablaPalabra.modificarColor3(203, 67, 53) self.tablaPalabra.modificarColorLetra1(23, 32, 42) self.tablaPalabra.modificarColorLetra2(23, 32, 42) self.tablaPalabra.modificarColorLetra3(23, 32, 42) self.tablaPalabra.modificarEvento(0) self.tablaCodigo = Boton("Codigo") self.tablaCodigo.modificarPosicion(443, 180) self.tablaCodigo.modificarTamano(100, 40) self.tablaCodigo.modificarPosicionTexto(50, 20) self.tablaCodigo.modificarColor1(203, 67, 53) self.tablaCodigo.modificarColor2(176, 58, 46) self.tablaCodigo.modificarColor3(203, 67, 53) self.tablaCodigo.modificarColorLetra1(23, 32, 42) self.tablaCodigo.modificarColorLetra2(23, 32, 42) self.tablaCodigo.modificarColorLetra3(23, 32, 42) self.tablaCodigo.modificarEvento(0) self.tablaPalabra1 = Boton("Entrar") self.tablaPalabra1.modificarPosicion(340, 223) self.tablaPalabra1.modificarTamano(100, 40) self.tablaPalabra1.modificarPosicionTexto(50, 20) self.tablaPalabra1.modificarColor1(241, 148, 138) self.tablaPalabra1.modificarColor2(236, 112, 99) self.tablaPalabra1.modificarColor3(241, 148, 138) self.tablaPalabra1.modificarColorLetra1(23, 32, 42) self.tablaPalabra1.modificarColorLetra2(23, 32, 42) self.tablaPalabra1.modificarColorLetra3(23, 32, 42) self.tablaPalabra1.modificarEvento(0) self.tablaCodigo1 = Boton("Estrella") self.tablaCodigo1.modificarPosicion(443, 223) self.tablaCodigo1.modificarTamano(100, 40) self.tablaCodigo1.modificarPosicionTexto(50, 20) self.tablaCodigo1.modificarColor1(217, 136, 128) self.tablaCodigo1.modificarColor2(205, 97, 85) self.tablaCodigo1.modificarColor3(217, 136, 128) self.tablaCodigo1.modificarColorLetra1(23, 32, 42) self.tablaCodigo1.modificarColorLetra2(23, 32, 42) self.tablaCodigo1.modificarColorLetra3(23, 32, 42) self.tablaCodigo1.modificarEvento(0) self.controlador.enviarEventoBoton(self.tablaCodigo) self.controlador.enviarEventoBoton(self.tablaCodigo1) self.controlador.enviarEventoBoton(self.tablaPalabra) self.controlador.enviarEventoBoton(self.tablaPalabra1) def activarBotones(self): """Activa el conjunto de botones""" self.btnContinuar.modificarActivo(True) self.btnInicio.modificarActivo(True) self.activarTabla() def desactivarBotones(self): """Desactiva el conjunto de botones""" self.btnContinuar.modificarActivo(False) self.btnInicio.modificarActivo(False) self.desactivarTabla() def activarTabla(self): """Activa el conjunto de botones de la tabla""" self.tablaCodigo.modificarActivo(True) self.tablaCodigo1.modificarActivo(True) self.tablaPalabra.modificarActivo(True) self.tablaPalabra1.modificarActivo(True) def desactivarTabla(self): """Desactiva el conjunto de botones de la tabla""" self.tablaCodigo.modificarActivo(False) self.tablaCodigo1.modificarActivo(False) self.tablaPalabra.modificarActivo(False) self.tablaPalabra1.modificarActivo(False) def construir(self): """ Se encargara de construir toda la parte grafica """ self.fondo = Imagen(self.fondo, (0, 0)) self.fondo.cambiarEscala(0.5) self.titulo = Titulo("KACH!", 120, 450, 70, 2, (36, 32, 163)) self.lblTutorial = Titulo("Tutorial", 450, 30, 40, 2, (36, 32, 163)) self.btnContinuar = Boton("Continuar") self.btnContinuar.modificarPosicion(280, 420) self.btnContinuar.modificarTamano(160, 50) self.btnContinuar.modificarPosicionTexto(40, 27) self.btnContinuar.modificarColor1(234, 234, 216) self.btnContinuar.modificarColorLetra1(21, 67, 96) self.btnContinuar.modificarColor2(209, 210, 179) self.btnContinuar.modificarColorLetra2(21, 67, 96) self.btnContinuar.modificarColor3(91, 202, 213) self.btnContinuar.modificarColorLetra3(21, 67, 96) self.btnContinuar.modificarEvento(7) self.btnInicio = Boton("Inicio") self.btnInicio.modificarPosicion(460, 420) self.btnInicio.modificarTamano(160, 50) self.btnInicio.modificarPosicionTexto(30, 27) self.btnInicio.modificarColor1(234, 234, 216) self.btnInicio.modificarColorLetra1(21, 67, 96) self.btnInicio.modificarColor2(209, 210, 179) self.btnInicio.modificarColorLetra2(21, 67, 96) self.btnInicio.modificarColor3(91, 202, 213) self.btnInicio.modificarColorLetra3(21, 67, 96) self.btnInicio.modificarEvento(6) self.cuadro = Boton("") self.cuadro.modificarPosicion(200, 100) self.cuadro.modificarTamano(430, 300) self.cuadro.modificarPosicionTexto(30, 27) self.cuadro.modificarColor1(234, 234, 216) self.cuadro.modificarColorLetra1(21, 67, 96) self.cuadro.modificarColor2(234, 234, 216) self.cuadro.modificarColorLetra2(21, 67, 96) self.cuadro.modificarColor3(234, 234, 216) self.cuadro.modificarColorLetra3(21, 67, 96) self.cuadro.modificarEvento(0) self.mensajes() #Eventos de los botones self.controlador.enviarEventoBoton(self.btnContinuar) self.controlador.enviarEventoBoton(self.btnInicio) def pintar(self, screen, paso=0): """ Se encargara de mostrar toda la parte grafica @param screen: Pantalla en la que se va a pintar @type screen: Surface """ self.fondo.ponerImagen(screen) self.titulo.pintar(screen) self.lblTutorial.pintar(screen) self.btnInicio.pintar(screen) self.btnContinuar.pintar(screen) self.cuadro.pintar(screen) if (paso == 0): self.textoActual = 0 for x in self.textos[self.textoActual]: x.pintar(screen) elif (paso == 1): self.textoActual = 1 for x in self.textos[self.textoActual]: x.pintar(screen) self.tablaCodigo.pintar(screen) self.tablaPalabra.pintar(screen) self.tablaCodigo1.pintar(screen) self.tablaPalabra1.pintar(screen) elif (paso == 2): self.textoActual = 2 for x in self.textos[self.textoActual]: x.pintar(screen) elif (paso == 3): self.textoActual = 3 for x in self.textos[self.textoActual]: x.pintar(screen) self.ImagenAtbas.ponerImagen(screen) elif (paso == 4): self.textoActual = 4 for x in self.textos[self.textoActual]: x.pintar(screen) self.tablaPolibi.ponerImagen(screen) elif (paso == 5): self.textoActual = 5 for x in self.textos[self.textoActual]: x.pintar(screen) self.manoPolibi.ponerImagen(screen) self.polibiEje.ponerImagen(screen) elif (paso == 6): self.textoActual = 6 for x in self.textos[self.textoActual]: x.pintar(screen) self.cesar.ponerImagen(screen) self.cesarEjemplo.ponerImagen(screen) elif (paso == 7): self.textoActual = 7 for x in self.textos[self.textoActual]: x.pintar(screen) self.rejilla.ponerImagen(screen) else: self.textoActual = 8 for x in self.textos[self.textoActual]: x.pintar(screen) self.rejillaEjemplo.ponerImagen(screen)