private static void expandMoveRecursivelyForWhite(Board board, Vector<Vector<Move>> outerVector, Vector<Move> innerVector, int r, int c){
        
        Vector<Move> forcedMoves = White.ObtainForcedMovesForWhite(r, c, board);
        
        if(forcedMoves.isEmpty()){
            Vector<Move> innerCopy = (Vector<Move>)innerVector.clone();
            outerVector.add(innerCopy);
            return;
            
        }else{
            for(Move m:forcedMoves){
                
                Board boardCopy = board.duplicate();
                boardCopy.genericMakeWhiteMove(m);
                
                innerVector.add(m);
                expandMoveRecursivelyForWhite(boardCopy, outerVector, innerVector, m.finalRow, m.finalCol);
                innerVector.remove(m);
                
            }
        }

              
    }