¿Cómo buscar sacrificios de intercambio en una base de datos de ajedrez?

8

Estoy buscando una forma dentro de cualquiera de los paquetes de ajedrez comunes para buscar una maniobra específica: ¿la torre toma alfil protegido (es decir, un sacrificio de intercambio)? He oído hablar de CQL , pero nunca lo usé, por lo que sería curioso si admite algo como esto.

Joe
fuente

Respuestas:

7

Chess Query Language hace esto muy bien. El siguiente archivo corto .cql funciona a las mil maravillas para encontrar todos los juegos en input.pgn en los que un lado está arriba de un intercambio (al tiempo que permite una diferencia en el número de peones para cada lado) para 4 movimientos consecutivos (elegidos para gobernar por ejemplo, situaciones en las que una secuencia igual de intercambios comienza con una torre que toma una pieza menor u otros pseudo-sacrificios temporales).

(match
    :pgn input.pgn
    :output output.pgn
    (position
    :sequence(
        (position :powerdifference [Rr] -5 -5 :powerdifference [Qq] 0 0 :powerdifference [BbNn] 3 3)
        (position :powerdifference [Rr] -5 -5 :powerdifference [Qq] 0 0 :powerdifference [BbNn] 3 3)
        (position :powerdifference [Rr] -5 -5 :powerdifference [Qq] 0 0 :powerdifference [BbNn] 3 3)
        (position :powerdifference [Rr] -5 -5 :powerdifference [Qq] 0 0 :powerdifference [BbNn] 3 3)
    )
    :flipcolor
    )
)

Se utilizan valores de puntos estándar para las piezas, por lo que la :powerdifference [Rr] -5 -5condición significa que el negro tiene una torre más que el blanco, mientras :powerdifference [BbNn] 3 3que garantiza que el blanco tiene exactamente una pieza menor más que el negro. Al :flipcolorfinal realiza la misma búsqueda con los roles invertidos. De manera predeterminada, CQL inserta un comentario "COINCIDIR" en los juegos de la salida resultante.pgn en las posiciones que garantizan su inclusión, para que pueda localizar rápidamente los sacos de intercambio.

ETD
fuente
increíble, suena como algo que estaba buscando en CQL. ¿Utiliza la implementación de CQL de rbnn.com/cql ?
Joe
@ Joe, sí, ese es el que usé.
ETD
2
Gran respuesta, no sabía que tal cosa existiera.
Tony Ennis