예제 #1
0
 public static void GenerateMovesForPiece(Board board, MovesList movesList, int piece, bool slider)
 {
     for (int i = 0; i < board.pieces[piece].Count; i++)
     {
         int square = board.pieces[piece][i];
         for (int j = 0; j < Directions[piece].Length; j++)
         {
             int toSquare = square + Directions[piece][j];
             do
             {
                 if ((board[toSquare] & border) > 0)
                 {
                     if ((board[toSquare] & border) == enemy)
                     {
                         AddMove.CaptureMove(board, Move.Write(square, toSquare, board[toSquare], 0, false, false, false), movesList);
                     }
                     break;
                 }
                 AddMove.QuietMove(board, Move.Write(square, toSquare, 0, 0, false, false, false), movesList);
                 toSquare += Directions[piece][j];
             } while (slider);
         }
     }
 }