// to generate adjacent moves of the black pieces
 public LinkList generateMove_Black(String board, LinkList LL1) {
   String b;
   int j;
   LL1.first = null;
   int[] n = null;
   for (int i = 0; i < board.length(); i++) {
     if (board.charAt(i) == 'B') {
       n = neighbors(i);
       for (int k = 0; k < n.length; k++) {
         j = n[k];
         if (board.charAt(j) == 'x') {
           b = board;
           b = b.substring(0, i) + 'x' + b.substring(i + 1);
           b = b.substring(0, j) + 'B' + b.substring(j + 1);
           if (closeMill(j, b)) {
             LL1 = generateRemove_Black(b, LL1);
           } else {
             LL1.insert(b);
           }
         }
       }
     }
   }
   return LL1;
 }
 // to generate hopping moves for black pieces
 public LinkList generateHopping_Black(String board, LinkList LL1) {
   String b;
   LL1.first = null;
   for (int i = 0; i < board.length(); i++) {
     if (board.charAt(i) == 'B') {
       for (int j = 0; j < board.length(); j++) {
         if (board.charAt(j) == 'x') {
           b = board;
           b = b.substring(0, i) + 'x' + b.substring(i + 1);
           b = b.substring(0, j) + 'B' + b.substring(j + 1);
           if (closeMill(j, b)) {
             LL1 = generateRemove_Black(b, LL1);
           } else {
             LL1.insert(b);
           }
         }
       }
     }
   }
   return LL1;
 }