Ejemplo n.º 1
0
    def set_al_passant(self,movimiento):
        pieza = abs(self.tablero.obtener_pieza_de_casilla(movimiento.casilla_objetivo))

        if pieza == 1:
            filas_avanzadas = abs(movimiento.casilla_inicial.fila - movimiento.casilla_objetivo.fila)
            if filas_avanzadas == 2:
                for i in range(movimiento.casilla_objetivo.columna-1,movimiento.casilla_objetivo.columna+2):
                    if i == movimiento.casilla_objetivo.columna:
                        continue
                    tmp_posicion = Posicion(movimiento.casilla_objetivo.fila,i)
                    pieza_objetivo = abs(self.tablero.obtener_pieza_de_casilla(tmp_posicion))
                    if pieza_objetivo == 1:
                        color_pieza_inicial = self.tablero.get_color_pieza(movimiento.casilla_objetivo)
                        color_pieza_objetivo = self.tablero.get_color_pieza(tmp_posicion)
                        if color_pieza_inicial != color_pieza_objetivo:
                            if color_pieza_inicial == Turno.BLANCAS:
                                fila = movimiento.casilla_objetivo.fila+1
                            else:
                                fila = movimiento.casilla_objetivo.fila-1
                            tmp_posicion_objetivo = Posicion(fila,movimiento.casilla_objetivo.columna)
                            mov_al_passant = Movimiento.Movimiento(tmp_posicion,tmp_posicion_objetivo)
                            self.al_passant = mov_al_passant
                            return True
        self.al_passant = None
        return False
Ejemplo n.º 2
0
    def cargar_imagen(self):
        self.path = './Imagenes/'
        tipo = '.gif'
        if self.pieza > 0:
            color_de_pieza = 'B'
        else:
            color_de_pieza = 'N'

        if abs(self.pieza) == 1:
            self.path += color_de_pieza + 'P' + tipo
            #self.posicion_inicial = Posicion.Posicion(125,49.32)
        elif abs(self.pieza) == 2:
            self.path += color_de_pieza + 'C' + tipo
            #self.posicion_inicial = Posicion.Posicion(126,50.4)
        elif abs(self.pieza) == 3:
            self.path += color_de_pieza + 'A' + tipo
            #self.posicion_inicial = Posicion.Posicion(126,50.3)
        elif abs(self.pieza) == 4:
            self.path += color_de_pieza + 'T' + tipo
            #self.posicion_inicial = Posicion.Posicion(126,50.3)
        elif abs(self.pieza) == 5:
            self.path += color_de_pieza + 'D' + tipo
            #self.posicion_inicial = Posicion.Posicion(126,50.5)
        else:
            self.path += color_de_pieza + 'R' + tipo
            #self.posicion_inicial = Posicion.Posicion(127,50.5)
        self.posicion_inicial = Posicion(100, 100)
        self.imagen = tk.PhotoImage(file=self.path)
Ejemplo n.º 3
0
    def mover_pieza(self,movimiento_a_realizar):
        self.cantidad_de_movimientos = self.cantidad_de_movimientos + 1
        self.__log.agregar_log(self.tablero,movimiento_a_realizar)

        str_mov = self.__log.movimiento_to_string()
        if self.turno == 'B':
            pieza_de_coronamiento = 5
            self.turno = 'N'
        else:
            pieza_de_coronamiento = -5
            self.turno = 'B'
        
        
        casilla_inicial = Posicion(movimiento_a_realizar.casilla_inicial.fila,movimiento_a_realizar.casilla_inicial.columna)
        casilla_objetivo = Posicion(movimiento_a_realizar.casilla_objetivo.fila,movimiento_a_realizar.casilla_objetivo.columna)
        movimiento_GUI = Movimiento.Movimiento(casilla_inicial,casilla_objetivo)
        if self.J1 == "N":
            movimiento_GUI.casilla_inicial.invertir()
            movimiento_GUI.casilla_objetivo.invertir()
        if (self.al_passant != None) and (movimiento_a_realizar.equals(self.al_passant)):
            self.master.GUI_ajedrez.colocar_captura_al_paso(movimiento_GUI)
            self.tablero.realizar_captura_al_paso(movimiento_a_realizar)
        elif self.tablero.es_movimiento_enrroque(movimiento_a_realizar):
            self.master.GUI_ajedrez.colocar_enrroque(movimiento_GUI)
            self.tablero.realizar_enrroque(movimiento_a_realizar)
        elif self.tablero.es_movimiento_coronacion(movimiento_a_realizar):
            self.master.GUI_ajedrez.colocar_coronamiento(movimiento_GUI,pieza_de_coronamiento)
            self.tablero.realizar_coronamiento(movimiento_a_realizar,pieza_de_coronamiento)
        else:
            self.master.GUI_ajedrez.mover_pieza(movimiento_GUI)
            self.tablero.mover_pieza(movimiento_a_realizar)
        
        self.master.GUI_ajedrez.escribir_en_text_box(str(self.cantidad_de_movimientos) + ". " + str_mov)
        self.set_al_passant(movimiento_a_realizar)
        self.actualizar_turno_pc()
        self.actualizar_estado_de_tablero()
        estado = self.get_estado_log()
        self.__log.set_estado_a_log(estado)
        self.master.GUI_ajedrez.limpiar_casillas_mov_anterior()
        self.master.GUI_ajedrez.marcar_movimiento_anterior(movimiento_a_realizar)
        self.master.GUI_ajedrez.actualizar_estado_de_pantalla()
        self.limpiar_casilla_inicial() 
        self.limpiar_casilla_objetivo()
        self.limpiar_movimiento_a_realizar()
Ejemplo n.º 4
0
    def cargar_piezas(self):
        self.piezas = {Turno.BLANCAS: {}, Turno.NEGRAS: {}}
        for fila in range(0, 8):
            for columna in range(0, 8):
                tmp_posicion = Posicion(fila, columna)
                tmp_pieza = self.tablero.obtener_pieza_de_casilla(tmp_posicion)
                if tmp_pieza == 0:
                    continue

                color = self.tablero.get_color_pieza(tmp_posicion)
                self.piezas[color][tmp_posicion] = []
Ejemplo n.º 5
0
 def mover_casilla_en_tablero(self, direccion_fila, direccion_columna):
     self.posicion_en_tablero = Posicion(
         self.posicion_en_tablero.fila + 100 * direccion_fila,
         self.posicion_en_tablero.columna + 100 * direccion_columna)
Ejemplo n.º 6
0
 def colocar_posicion_en_tablero(self, posicion):
     self.posicion_en_tablero = Posicion(posicion.fila, posicion.columna)
Ejemplo n.º 7
0
 def calcular_posicion_en_tablero(self, posicion):
     self.posicion_en_tablero = Posicion(
         self.posicion_inicial.fila + (posicion.fila * 100),
         self.posicion_inicial.columna + (posicion.columna * 100))