# Qq-rotations.cql

// Download Qq-rotations.cql// PGN output when run on sample.pgn

/* Find games where a black and white Queen are separated by a single piece, and where all eight possible orientations of this configuration of queens occurs. Actually we find games where at least 5 of the orientations occur, sorted by the number of orientations. To understand this, suppose there is a Q on d4. Then right 1 Q is the square e4, and [ [Aa] & right 1 Q will match a position with the Q on d4, and a piece on e4. Then right 1 ([Aa] & right 1 Q) will be the square f4, and so q & right 1 ([Aa] & right 1 Q) will match a position with the Q on d4, a piece on e4 and a q on f4. Since this works no matter where the Q is, this matches one of the eight orientations of the Q and q. Now when we put a rotate45 in front of this, the "right" is replaced successively by northeast, north, southwest, and so on over all the directions. This gives us all the orientations. */ cql(input heijden.pgn variations) initial sort "Number of theme occurrences" {rotate45 count find q & right 1 ([Aa] & right 1 Q)} >=5