generatePass method

PassMove? generatePass(
  1. int colour, [
  2. bool legal = true
])

Implementation

PassMove? generatePass(int colour, [bool legal = true]) {
  if (state.move is PassMove) return null;
  if (!variant.canPass(state: state, colour: colour)) {
    return null;
  }
  PassMove m = PassMove();
  if (legal) {
    bool valid = makeMove(m, false);
    if (lostBy(colour, ignoreSoftResults: true) || kingAttacked(colour)) {
      valid = false;
    }
    undo();
    return valid ? m : null;
  }
  return m;
}