zugzwang1.cql

// Download zugzwang1.cql
// PGN output when run on sample.pgn

/*********
This simple example just illustrates how to find a zugzwang: the same position occurs with black to move in the
mainline, but white to move in the variation, in a win study
The wtm position must arise from a white try from the mainline
**********/

cql(input hhdbvi.pgn variations)
result 1-0 //white wins
mainline // current position is a mainline
btm      // black to move
/*Now we seek a target in the variations that is wtm
  with the same board position. We set source to the
  old current position, and we continually reset target
  to each other position in the game*/
echo(source target){ 
 wtm try
 sourcetarget== //source and target have the same board position
 }