static void Main(string[] args) { ChessBoard cb = new ChessBoard(); cb.SetupBoard(new KeyValuePair <Int32, PieceType>[] { // Setup Black pieces new KeyValuePair <Int32, PieceType>(3, PieceType.BlackRook), new KeyValuePair <Int32, PieceType>(5, PieceType.BlackKing), new KeyValuePair <Int32, PieceType>(11, PieceType.BlackKnight), new KeyValuePair <Int32, PieceType>(12, PieceType.BlackKnight), new KeyValuePair <Int32, PieceType>(13, PieceType.BlackPawn), new KeyValuePair <Int32, PieceType>(14, PieceType.BlackPawn), new KeyValuePair <Int32, PieceType>(16, PieceType.BlackQueen), new KeyValuePair <Int32, PieceType>(17, PieceType.BlackPawn), new KeyValuePair <Int32, PieceType>(18, PieceType.BlackPawn), new KeyValuePair <Int32, PieceType>(19, PieceType.BlackRook), new KeyValuePair <Int32, PieceType>(23, PieceType.BlackPawn), new KeyValuePair <Int32, PieceType>(24, PieceType.BlackPawn), // Setup White pieces new KeyValuePair <Int32, PieceType>(31, PieceType.WhitePawn), new KeyValuePair <Int32, PieceType>(32, PieceType.WhitePawn), new KeyValuePair <Int32, PieceType>(35, PieceType.WhitePawn), new KeyValuePair <Int32, PieceType>(36, PieceType.WhitePawn), new KeyValuePair <Int32, PieceType>(37, PieceType.WhitePawn), new KeyValuePair <Int32, PieceType>(38, PieceType.WhitePawn), new KeyValuePair <Int32, PieceType>(40, PieceType.WhiteKnight), new KeyValuePair <Int32, PieceType>(41, PieceType.WhiteBishop), new KeyValuePair <Int32, PieceType>(42, PieceType.WhiteRook), new KeyValuePair <Int32, PieceType>(53, PieceType.WhiteKing) } ); cb.DisplayBoard(); int square = 41; ChessEngine eng = new ChessEngine(); List <FutureMove> futureMoves = eng.Calculate(cb, square); int move1 = futureMoves.Where(m => m.Depth == 1).Count(); int move2 = futureMoves.Where(m => m.Depth == 2).Count(); int move3 = futureMoves.Where(m => m.Depth == 3).Count(); Console.WriteLine(); Console.WriteLine(String.Format("Number of potential squares reached in 1 move {0,3} from square {1,2}", move1, square)); Console.WriteLine(String.Format("Number of potential squares reached in 2 moves {0,3} from square {1,2}", move2, square)); Console.WriteLine(String.Format("Number of potential squares reached in 3 moves {0,3} from square {1,2}", move3, square)); //dumpMoves( node ); Console.WriteLine(); Console.WriteLine("Press any key to exit."); Console.ReadKey(); }