private void updateAvailableCastlings(Move move, Board board) { Piece srcPiece = board.at(move.getDst()); if (srcPiece.isType(PieceType.KING)) { availableCastlings.get(srcPiece.color()).clear(); } if (srcPiece.isType(PieceType.ROOK) && move.getSource().getCol() == 0) { availableCastlings.get(srcPiece.color()).remove(CastlingType.CASTLING_QUEEN_SIDE); } if (srcPiece.isType(PieceType.ROOK) && move.getSource().getCol() == 7) { availableCastlings.get(srcPiece.color()).remove(CastlingType.CASTLING_KING_SIDE); } }