Como pesquisar em um banco de dados de xadrez em troca de sacrifícios?

8

Estou procurando uma maneira em qualquer um dos pacotes comuns de xadrez para procurar uma manobra específica - a torre leva o bispo que está protegido (isto é, um sacrifício de troca)? Já ouvi falar em CQL , mas nunca usei, por isso ficaria curioso se ele suporta algo assim.

Joe
fonte

Respostas:

7

O Chess Query Language faz isso muito bem. O arquivo .cql curto a seguir funciona como um encanto para encontrar todos os jogos em input.pgn nos quais um lado está em uma troca (enquanto permite uma diferença no número de peões para cada lado) por 4 movimentos retos (escolhidos de acordo com as regras digamos, situações em que uma sequência igual de negociações começa com uma torre pegando uma peça menor ou outros pseudo-sacrifícios temporários).

(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
    )
)

São utilizados valores de pontos padrão para peças, portanto, a :powerdifference [Rr] -5 -5condição significa que o preto tem mais uma torre que o branco, enquanto :powerdifference [BbNn] 3 3garante que o branco tenha exatamente mais uma peça menor que o preto. O :flipcolorfinal faz a mesma pesquisa com os papéis invertidos. Por padrão, o CQL insere um comentário "MATCH" nos jogos do output.pgn resultante nas posições que justificam sua inclusão, para que você possa localizar rapidamente os sacos de troca.

ETD
fonte
incrível, parece o tipo de coisa que eu estava procurando em termos de CQL. Você usa a implementação do CQL em rbnn.com/cql ?
31412 Joe
@ Joe, sim, esse é o que eu usei.
ETD
2
Ótima resposta, eu não sabia que isso existia.
Tony Ennis