clearance-delayed.cql

; clearance-delayed.cql can be downloaded here.
; delayed white clearance:
;  (1) White moves a piece, the "vacater" to an empty square.
;  (2) Black immediately captures that piece
;  (3) Later another white piece, the exploiter, crosses the square
;      that the vacater had vacated by moving. But the exploiter
;      did not move between (1) and (3).
; The output is sorted by the length of the delay between (2) and (3)
; Note that the reported length by sort is actually 4 positions LONGER
; than the delay between (2) and (3), due to the other positions in the
; sequence.

cql(input heijden.pgn)
wtm
piece $vacater in [RBNQ]
 piece $exploiter in [RBQ]
   attack ($exploiter $vacater)
   sort "theme length"
     next 10 1000
      (move from $vacater to _
       move from a to $vacater
       {not move from $exploiter}+
       move from $exploiter
       ray (origin $exploiter
            origin $vacater
	    $exploiter))