def check_select_piece(self, coord, player): '''Select piece if possible: display possible moves''' selected_piece = player.get_piece(coord) # check if piece found if selected_piece: self.piece_selected = selected_piece self.select = True # update selected case self.handeln_case(coord) # display possible moves poss_moves = self.ChessGame.get_possibles_moves(selected_piece) if selected_piece.name == 'king': # add castle moves can_long, can_short = PossibleMove.get_castle(player.color) self.handeln_castle_case(player.color, can_long, can_short) elif selected_piece.name == 'pawn': # look for en passant move en_passant_coord = PossibleMove.get_en_passant(selected_piece) if en_passant_coord != None: poss_moves.append(en_passant_coord) for coord in poss_moves: case = Board.get_case(coord) case.possible_move = True
def check_castle_moves(cls, king): line = PossibleMove.get_line(king.color) can_long, can_short = PossibleMove.get_castle(king.color) if can_long: rock = cls.players[king.color].get_piece((0, line)) # execute long castle king.move((2,line)) rock.move((3, line)) return True if can_short: rock = cls.players[king.color].get_piece((7, line)) # execute short castle king.move((6,line)) rock.move((5, line)) return True