/// <summary> /// специальная функция, которая нужна для рассчета ИИ в отдельном потоке /// полностью заведует взаимодействием с ИИ и запускается в отдельном потоке /// </summary> public void AIRun() { _AIProcessing = true; Move BestMove = AI.Processing(_MainBoard); _MainBoard = Board.DoMove(_MainBoard, BestMove); //делаем ход bool CheckCheck = Board.CheckCheck(_MainBoard, _MainBoard.NextColor); //проверим ход на шах if (CheckCheck) { bool CheckMate = Board.CheckMate(_MainBoard);//проверим ход на мат if (CheckMate) { VisualBoard.CheckMate(_MainBoard.NextColor); VisualBoard.DrawVisualBoard(this, _MainBoard);//перерисовываем доску return; } } VisualBoard.DrawVisualBoard(this, _MainBoard); //перерисовываем доску VisualBoard.DrawVisualBoardEnemyMoved(this, _MainBoard, BestMove.XY2); //нарисуем доступные ходы _AIProcessing = false; }