Avoid generating and filtering illegal passing moves.
Bitboard sliderAttacks = 0;
Bitboard sliders = pos.checkers();
- // Passing move by king
- if (pos.king_pass())
+ // Passing move by king in bikjang
+ if (pos.bikjang() && pos.king_pass())
*moveList++ = make<SPECIAL>(ksq, ksq);
// Consider all evasion moves for special pieces
// Variant-specific properties
int count_in_hand(Color c, PieceType pt) const;
int count_with_hand(Color c, PieceType pt) const;
+ bool bikjang() const;
// Position representation
Bitboard pieces() const;
return pieceCount[make_piece(c, pt)] + pieceCountInHand[c][pt];
}
+inline bool Position::bikjang() const {
+ return st->bikjang;
+}
+
inline void Position::add_to_hand(Piece pc) {
pieceCountInHand[color_of(pc)][type_of(pc)]++;
pieceCountInHand[color_of(pc)][ALL_PIECES]++;