Este sitio utiliza cookies de Google para prestar sus servicios y analizar su tráfico. Tu dirección IP y user-agent se comparten con Google, junto con las métricas de rendimiento y de seguridad, para garantizar la calidad del servicio, generar estadísticas de uso y detectar y solucionar abusos.Más información

View site in english Ir a la página de inicio Contacta conmigo
jueves, 17 de diciembre de 2020

Gestor de base de datos de partidas de ajedrez II

En esta serie de artículos voy a comentar un gestor de bases de datos de partidas de ajedrez, ChesPosDb, que podéis descargar con este enlace. En el primer artículo de esta serie expliqué cómo cargar partidas en la base de datos utilizando archivos en formato PGN, que pueden descargarse desde multitud de sitios de Internet. En el presente artículo y los siguientes voy a introducir los diferentes tipos de filtro que pueden construirse para buscar las partidas en la base de datos.

Existen dos tipos de filtros diferentes: filtros de movimiento, que seleccionan las partidas encontrando un determinado movimiento o posición, y filtros de partida, que seleccionan las partidas encontrando una serie de movimientos o posiciones, o bien otras condiciones como los nombres de los jugadores, el resultado, etc.

Cada filtro individual representa una condición de un tipo determinado, existiendo diferentes tipos de condiciones. Estas condiciones se pueden combinar para construir filtros compuestos por más de una condición. Los filtros compuestos son de dos tipos: en el primero, todas las condiciones que contenga el filtro compuesto deben cumplirse; a este tipo de filtro compuesto lo llamaremos Filtro Y. En el otro tipo de filtro compuesto, basta con que se cumpla una sola de las condiciones, aunque pueden cumplirse más de una; este tipo de filtro lo llamaremos Filtro O.

Filtros de movimiento y posición

Para construir un filtro de movimiento, utilizaremos la opción Editor de filtros de movimiento, que está en el menú Base de datos:

Menú Base de datos de ChessPosDB
Menú Base de datos de ChessPosDB

Se mostrará la ventana del editor de filtros:

Editor de filtros de movimiento
Editor de filtros de movimiento

El recuadro gris es la herramienta con la que se crearán los diferentes filtros. El área sobre la que se crean dichos filtros es un filtro compuesto, que por defecto será un Filtro Y. Podemos cambiar el tipo a un Filtro O pulsando en el botón Cambiar modo de enlace de la herramienta. Hay que tener en cuenta que los filtros O serán por lo general más lentos que los filtros Y. Aunque solo queramos especificar una única condición, ésta siempre se construirá dentro de un filtro compuesto.

En el desplegable que hay en la herramienta, podemos seleccionar el tipo de filtro que queremos añadir, una vez seleccionado, solo hay que pulsar el botón Añadir de la herramienta:

Selección de tipo de filtro
Selección de tipo de filtro

El primero de los tipos de filtro, Condición de filtro compuesta, sirve para añadir un filtro Y o un filtro O dentro del filtro compuesto principal. Esto tiene utilidad para construir un filtro Y que contenga uno o más filtros O, o viceversa (no tiene sentido un filtro Y que contenga filtros Y o un filtro O que contenga filtros O, a no ser que lo hagamos para que se vea mejor en pantalla). Solo se admite este segundo nivel de filtros compuestos, en estos filtros ya no podemos añadir un filtro compuesto adicional, para no hacer demasiado complicado el filtro, pero con estos dos niveles es posible construir cualquier condición compuesta de varios filtros que se nos pueda ocurrir.

Si añadimos un filtro compuesto, éste tendrá su propia herramienta para añadir condiciones:

Filtros compuestos
Filtros compuestos

El círculo rojo con el aspa blanca que aparece en la esquina superior derecha de todos los filtros añadidos permite eliminarlos, haciendo doble clic con el botón izquierdo del ratón. Vamos a ver ahora el resto de filtros que podemos añadir.

Cuenta de piezas

Este filtro permite definir cuántas piezas de cada color deben estar presentes en el tablero para que la posición sea seleccionada. No hace falta definir todas las piezas, podemos buscar, por ejemplo, todas las partidas con una sola torre blanca y una o dos negras en alguna posición.

Filtro de cuenta de piezas
Filtro de cuenta de piezas

Pulsando el botón Editar, se abrirá el cuadro de diálogo que permite definir la cuenta de piezas:

Configuración de cuenta de piezas
Configuración de cuenta de piezas

Para cada pieza, podemos indicar si queremos incluirla o no en el filtro, marcando la casilla Usar filtro. Podemos indicar la cuenta usando una serie de operadores con respecto al número que indiquemos. Por ejemplo, si seleccionamos Diferente a y escribimos un 3 en la casilla de cuenta de los peones, valdrá cualquier posición que no tenga exactamente 3 peones. Los operadores En el rango y No en el rango permiten definir un rango entre dos valores en lugar de uno solo; los dos valores se deben escribir separados por un punto y coma (;), sin espacios. Por ejemplo, en el rango 2;5 significa entre 2 y 5 peones. También es posible escribir una descripción para el filtro, en el caso de que tenga algún sentido especial que queramos recordar.

Una vez realizada la configuración, podemos salir con el botón OK. La cuenta seleccionada se reflejará en el filtro (en la imagen, el filtro no tiene en cuenta las torres ni las damas):

Filtro de cuenta de piezas configurado
Filtro de cuenta de piezas configurado

Definición de posición

Con este filtro es posible definir la disposición de piezas en el tablero completo o en un rectángulo de escaques. Este rectángulo se buscará en todas las posibles ubicaciones en las que se pueda situar en el tablero.

Filtro de posición
Filtro de posición

Al pulsar el botón Editar se accede al tablero donde definir la posición:

Editor del tablero
Editor del tablero

Las casillas del tablero tienen una marca que indica cuáles se van a tener en cuenta para definir la posición. Inicialmente están seleccionadas todas, pero se puede seleccionar un rectángulo cualquiera del tablero pulsando sobre su casilla superior izquierda con el botón izquierdo del ratón y, sin soltar el botón, arrastrar el puntero hasta la casilla inferior derecha de la zona a seleccionar. Es indiferente qué zona marquemos, porque todos los rectángulos del mismo tamaño se considerarán iguales a la hora de buscar la posición.

Cuando seleccionamos todo el tablero, los colores de los escaques no pueden variar, pero si seleccionamos solo una porción, existen tres posibles combinaciones de colores:

Selección de escaques
Selección de escaques

En la primera por la izquierda, los escaques son de color indiferente, es decir, la esquina superior izquierda puede ser un escaque negro o uno blanco. En las otras dos configuraciones, hemos forzado una configuración de escaques determinada, lo que reduce el número de zonas diferentes del tablero completo en las que pueden estar ubicadas. Para realizar esta configuración, hay que pulsar sobre la casilla superior izquierda con el botón derecho del ratón, para que aparezca el menú siguiente:

Menú de configuración de escaques
Menú de configuración de escaques

Con las tres primeras opciones, podemos configurar todo el rectángulo seleccionado con las tres posibilidades anteriores. Las otras cuatro opciones son para tratar escaques individuales, y solo afectan al escaque encima del cual hemos pulsado para mostrar el menú. Un escaque ignorado es un escaque que no se tendrá en cuenta a la hora de buscar la posición, y que podrá estar vacío o contener cualquier pieza de cualquier color. Un escaque vacío significa que el escaque deberá estar vacío para que se cumpla el filtro. Estos escaques vacíos se indican con el símbolo del conjunto vacío, si un escaque aparece sin ningún símbolo ni pieza, se trata de un escaque ignorado. Las otras dos opciones son para facilitar el trabajo de marcado de escaques vacíos o de escaques ignorados en una sola operación en lugar de hacerlo casilla por casilla.

Para situar una pieza en una casilla determinada, en la parte inferior del tablero hay tres filas de piezas: las negras, las blancas y las de color indiferente, que indican tanto una pieza blanca como una negra. Al pulsar con el botón izquierdo del ratón sobre una de estas piezas, el cursor cambiará al icono de la pieza y podremos situarla sobre cualquier casilla de la selección pulsando de nuevo sobre esta casilla. No hace falta volver a seleccionar la pieza si queremos colocar más de una del mismo tipo, solo hay que hacerlo para cambiar a otra pieza diferente. Pulsando dos veces sobre la misma casilla, el cursor vuelve a su estado normal. Es posible colocar más de una pieza sobre el mismo escaque. Esto quiere decir que en ese escaque puede estar situada cualquier pieza de entre las que hayamos añadido. Las casillas vacías también se cuentan como pieza en este sentido. Para eliminar la configuración de una casilla, se debe usar una de las opciones del menú del escaque.

Posición configurada
Posición configurada

En la imagen se puede ver una configuración de 3 x 2 escaques, con dos escaques que deben estar vacíos, un rey y una torre negros, una torre de color indiferente, y un escaque que puede contener un peón, un caballo o un alfil negro.

En los filtros de partida, es posible crear un filtro que contenga varias posiciones correspondientes a varios movimientos diferentes, por ejemplo, para definir una determinad apertura. En este caso puede resultar muy tedioso volver a posicionar todas las piezas para ir cambiando una sola cada vez. Para evitar esto, se pueden almacenar en memoria varias posiciones y tomarlas como punto de partida para la siguiente que vayamos a definir. Para ello, en la parte inferior de la ventana del tablero, habrá que escribir una descripción para la posición, y pulsar el botón Guardar que está a la derecha de la lista desplegable. Las posiciones contenidas en esta lista aparecerán en esta ventana cada vez que editemos una nueva posición, y podremos seleccionarlas en la lista desplegable y pasarlas al tablero pulsando el botón Usar. A continuación, solo habrá que cambiar unas pocas piezas para definir la siguiente posición, y podemos guardar de nuevo esta posición para continuar el procedimiento en el siguiente movimiento. Al salir de la aplicación, esta lista se perderá.

Otros dos botones que pueden facilitar el trabajo son Vaciar, que borrará todas las casillas del tablero, e Inicial, que colocará todas las piezas en la posición inicial de una partida.

Esto en cuanto a la definición de configuraciones de piezas complejas o parciales. Si lo que queremos es definir una posición concreta que abarque todo el tablero, sin complicaciones, podemos usar un formato más simple, marcando la casilla Editor simple que está debajo del tablero. Aquí las casillas vacías son casillas vacías, y en cada escaque solo puede haber una pieza, que colocaremos de la manera explicada anteriormente. No existen piezas de color indefinido, solo blancas o negras. Tampoco se pueden seleccionar casillas, se tiene en cuenta siempre todo el tablero. Aquí también existe la opción de guardar posiciones, como en el caso anterior.

Una vez definida la posición, podemos verla en el editor de filtros al pasar el cursor del ratón sobre el dibujo del tablero de cada uno de los filtros de posición, sin necesidad de abrir el editor:

Vista fácil de la posición
Vista fácil de la posición

En el próximo artículo de la serie continuaré explicando el resto de los filtros de movimiento, que ya son todos bastante más sencillos que este.

¡Hasta la próxima, gracias por leer!

Comparte este artículo: Compartir en Twitter Compártelo en Facebook Compartir en Google Plus Compartir en LinkedIn
Comentarios (0):
* (Su comentario será publicado después de la revisión)

E-Mail


Nombre


Web


Mensaje


CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code