交換の犠牲のためにチェスデータベースを検索する方法?


8

特定の機動を検索する一般的なチェスパッケージ内の方法を探しています-ルークは保護されている司教(つまり、交換の犠牲)を取りますか?CQLについて聞いたことがありますが、使用したことがないので、このようなものがサポートされているかどうか知りたいと思います。

回答:


7

Chess Query Languageはこれを非常にうまく行います。次の短い.cqlファイルはチャームのように機能し、input.pgnですべてのゲームを検索します。このゲームでは、片方が交換(両サイドのポーンの数に差がある)で、4つの直線移動を行います(ルールに従って選択)アウト、たとえば、一連の取引が偶然にルークがマイナーな駒を取っている、または他のそのような一時的な疑似犠牲で始まる状況)

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

ピースには標準のポイント値が使用されるため、:powerdifference [Rr] -5 -5条件は、ブラックがホワイトよりもルークが1つ多いことを意味し:powerdifference [BbNn] 3 3、ホワイトはブラックよりもマイナーなピースが1つ多いことを保証します。:flipcolor最後には逆の役割と同じ検索を行います。デフォルトでは、CQLは、結果のoutput.pgnのゲームに含めることを保証する位置に「MATCH」コメントを挿入するので、交換袋をすばやく見つけることができます。


すごい、私がCQLで探していたもののように聞こえます。rbnn.com/cqlの CQL実装を使用していますか?
Joe

@ジョー、はい、それは私が使用したものです。
ETD、

2
すばらしい答えです。そのようなことが存在することは知りませんでした。
Tony Ennis
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.