private static void MakeMove(object _board) { Board board = _board as Board; //check if we only have one move var moves = MovesGenerator.GetMoves(board, false); if (moves.Count == 1) { Moved(moves[0]); } Move move; if (OpeningBook.IsInBook) { move = OpeningBook.GetRandomMove(); } else { BoardEvaluator.m_EvaluationCounter = 0; //Move move = AlphaBetaRoot(m_GameBoard, Depth); move = IterativeDeepeningAlphaBeta(board).BestMove; } Clock.Stop(); if (Moved != null) { Moved(move); } m_MoveThread.Abort(); }