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
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)