Wie durchsuche ich eine Schachdatenbank nach Tauschopfern?

8

Ich suche nach einer Möglichkeit innerhalb eines der gängigen Schachpakete, nach einem bestimmten Manöver zu suchen - Turm nimmt Bischof, der geschützt ist (dh ein Austauschopfer)? Ich habe von CQL gehört , es aber nie verwendet, daher wäre ich gespannt, ob es so etwas unterstützt.

Joe
quelle

Antworten:

7

Chess Query Language macht das sehr gut. Die folgende kurze .cql-Datei funktioniert wie ein Zauber, um alle Spiele in input.pgn zu finden, bei denen eine Seite einen Austausch (während ein Unterschied in der Anzahl der Bauern für jede Seite zulässig ist) für 4 gerade Züge (ausgewählt, um zu regeln) zulässt B. Situationen, in denen eine gleiche Abfolge von Trades damit beginnt, dass ein Turm ein kleines Stück nimmt oder andere solche vorübergehenden Pseudoopfer).

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

Es werden Standardpunktwerte für Teile verwendet. Die :powerdifference [Rr] -5 -5Bedingung bedeutet also, dass Schwarz einen Turm mehr als Weiß hat, während :powerdifference [BbNn] 3 3Weiß genau ein kleineres Stück mehr als Schwarz hat. Das :flipcoloram Ende macht die gleiche Suche mit den vertauschten Rollen. Standardmäßig fügt CQL in die Spiele der resultierenden output.pgn an den Positionen, die ihre Aufnahme rechtfertigen, einen "MATCH" -Kommentar ein, damit Sie die Austauschsäcke schnell finden können.

ETD
quelle
Genial, hört sich so an, als hätte ich nach CQL gesucht. Verwenden Sie die CQL-Implementierung von rbnn.com/cql ?
Joe
@ Joe, ja, das ist der, den ich benutzt habe.
ETD
2
Tolle Antwort, ich wusste nicht, dass so etwas existiert.
Tony Ennis