class EscenaContinuar(Escenario): def __init__(self, director): Escenario.__init__(self, director) self.continuar = Boton(100, 270, 100, 100, "Escenas/media/aceptar.png") self.salir = Boton(300, 270, 100, 100, "Escenas/media/salir.png") self.respuesta_continuar = True def actualizar(self): pass def eventos(self, e): if self.continuar.click(e): self.director.quit_flag = True elif self.salir.click(e): self.respuesta_continuar = False self.director.quit_flag = True def en_escena(self): self.director.screen.fill(BLANCO) dibujar_texto("¿Desea", FUENTE_ETIQUETAS, self.director.screen, 50, 75, GRIS_OSCURO) dibujar_texto("Continuar?", FUENTE_ETIQUETAS, self.director.screen, 50, 160, GRIS_OSCURO) self.director.screen.blit(*self.continuar.imprimir()) self.director.screen.blit(*self.salir.imprimir()) dibujar_texto("SI", FUENTE_ETIQUETAS_MINI, self.director.screen, 120, 380, GRIS_OSCURO) dibujar_texto("NO", FUENTE_ETIQUETAS_MINI, self.director.screen, 320, 380, GRIS_OSCURO)
def mostrar_ganador(self): if self.ganador == 'i': self.baker = Boton(150, 300, 200, 200, "Escenas/media/Baker.png") elif self.ganador == 'j': self.tu = Boton(150, 300, 200, 200, "Escenas/media/Tu.png") else: self.baker = Boton(50, 200, 200, 200, "Escenas/media/Baker.png") self.tu = Boton(250, 200, 200, 200, "Escenas/media/Tu.png")
class EscenaIntro(Escenario): def __init__(self, director): Escenario.__init__(self, director) self.logotipo = Boton(100, 40, 300, 300, "Escenas/media/logo.png") self.contador = 0 def actualizar(self): self.contador += 1 if self.contador == 200: self.director.quit_flag = True def eventos(self, e): pass def en_escena(self): self.director.screen.fill(BLANCO) self.director.screen.blit(*self.logotipo.imprimir()) dibujar_texto("#BakerChallenge", FUENTE_TITULOS_MINI, self.director.screen, 20, 400, GRIS_OSCURO)
def __init__(self, director): Escenario.__init__(self, director) # Elementos de la interfaz del tablero self.fondo_tablero = Boton(0, 0, 150, 500, "Escenas/media/fondo_blanco.png") self.casilla1 = Boton(12.5, 162.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla2 = Boton(175, 162.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla3 = Boton(337.5, 162.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla4 = Boton(12.5, 325, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla5 = Boton(175, 325, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla6 = Boton(337.5, 325, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla7 = Boton(12.5, 487.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla8 = Boton(175, 487.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla9 = Boton(337.5, 487.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casillas_validas = { 0: self.casilla1, 1: self.casilla2, 2: self.casilla3, 3: self.casilla4, 4: self.casilla5, 5: self.casilla6, 6: self.casilla7, 7: self.casilla8, 8: self.casilla9 } self.imagen_jugador = "Escenas/media/Tu.png" self.imagen_IA = "Escenas/media/Baker.png" self.marcador_jugador = Boton(50, 50, 75, 75, "Escenas/media/Tu.png") self.marcador_IA = Boton(375, 50, 75, 75, "Escenas/media/Baker.png") self.click = mixer.Sound("Escenas/media/click.ogg") self.musica_fondo = mixer.music.load("Escenas/media/Kick Shock.mp3") # Elementos del algoritmo MiniMax self.tablero_virtual = Tablero() self.jugador_IA = JugadorIA() self.turnos = cycle([JUGADOR, IA]) self.turno = next(self.turnos) self.color_jugador = AZUL self.color_IA = AZUL self.iniciar_contador = False self.contador = 0 self.contador_resultado = 0
class EscenaJuego(Escenario): def __init__(self, director): Escenario.__init__(self, director) # Elementos de la interfaz del tablero self.fondo_tablero = Boton(0, 0, 150, 500, "Escenas/media/fondo_blanco.png") self.casilla1 = Boton(12.5, 162.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla2 = Boton(175, 162.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla3 = Boton(337.5, 162.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla4 = Boton(12.5, 325, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla5 = Boton(175, 325, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla6 = Boton(337.5, 325, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla7 = Boton(12.5, 487.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla8 = Boton(175, 487.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casilla9 = Boton(337.5, 487.5, 150, 150, "Escenas/media/fondo_blanco.png") self.casillas_validas = { 0: self.casilla1, 1: self.casilla2, 2: self.casilla3, 3: self.casilla4, 4: self.casilla5, 5: self.casilla6, 6: self.casilla7, 7: self.casilla8, 8: self.casilla9 } self.imagen_jugador = "Escenas/media/Tu.png" self.imagen_IA = "Escenas/media/Baker.png" self.marcador_jugador = Boton(50, 50, 75, 75, "Escenas/media/Tu.png") self.marcador_IA = Boton(375, 50, 75, 75, "Escenas/media/Baker.png") self.click = mixer.Sound("Escenas/media/click.ogg") self.musica_fondo = mixer.music.load("Escenas/media/Kick Shock.mp3") # Elementos del algoritmo MiniMax self.tablero_virtual = Tablero() self.jugador_IA = JugadorIA() self.turnos = cycle([JUGADOR, IA]) self.turno = next(self.turnos) self.color_jugador = AZUL self.color_IA = AZUL self.iniciar_contador = False self.contador = 0 self.contador_resultado = 0 def actualizar(self): if self.iniciar_contador: self.contador += 1 self.fin_del_juego() if self.turno == IA: self.color_jugador = AZUL self.color_IA = NARANAJA if self.turno == IA and self.contador == 3: self.click.play() mov = self.jugador_IA.realizar_movimiento(self.tablero_virtual, self.turno) self.casillas_validas[mov].imagen = self.imagen_IA self.casillas_validas.pop(mov) self.turno = next(self.turnos) self.contador = 0 self.iniciar_contador = False def eventos(self, e): self.fin_del_juego() if self.turno == JUGADOR: self.color_jugador = NARANAJA self.color_IA = AZUL for mov, casilla in self.casillas_validas.items(): if casilla.click(e): self.click.play() casilla.imagen = self.imagen_jugador self.tablero_virtual.hacer_movimiento(mov, self.turno) self.casillas_validas.pop(mov) self.turno = next(self.turnos) self.iniciar_contador = True break def en_escena(self): self.director.screen.fill(GRIS_OSCURO) self.director.screen.blit(*self.fondo_tablero.imprimir()) dibujar_texto("TU", FUENTE_ETIQUETAS_MINI, self.director.screen, 60, 0, self.color_jugador) self.director.screen.blit(*self.marcador_jugador.imprimir()) dibujar_texto("BAKER", FUENTE_ETIQUETAS_MINI, self.director.screen, 340, 0, self.color_IA) self.director.screen.blit(*self.marcador_IA.imprimir()) self.director.screen.blit(*self.casilla1.imprimir()) self.director.screen.blit(*self.casilla2.imprimir()) self.director.screen.blit(*self.casilla3.imprimir()) self.director.screen.blit(*self.casilla4.imprimir()) self.director.screen.blit(*self.casilla5.imprimir()) self.director.screen.blit(*self.casilla6.imprimir()) self.director.screen.blit(*self.casilla7.imprimir()) self.director.screen.blit(*self.casilla8.imprimir()) self.director.screen.blit(*self.casilla9.imprimir()) def reproducir_musica(self): self.musica_fondo = mixer.music.play(-1, 0.0) def fin_del_juego(self): if self.tablero_virtual.fin_del_juego(): mixer.music.stop() self.iniciar_contador = False self.contador_resultado += 1 if self.contador_resultado == 75: self.director.quit_flag = True
def __init__(self, director): Escenario.__init__(self, director) self.continuar = Boton(100, 270, 100, 100, "Escenas/media/aceptar.png") self.salir = Boton(300, 270, 100, 100, "Escenas/media/salir.png") self.respuesta_continuar = True
def __init__(self, director): Escenario.__init__(self, director) self.logotipo = Boton(100, 40, 300, 300, "Escenas/media/logo.png") self.contador = 0