public void Test(string board, ClassicMovement bestMovement, int recursionDepth) { var state = TestHelper.CreateState(board, 50, 50, 0, 0, 0, 0); var Ai = new ClassicAI(state); Ai.maxRecursionDepth = recursionDepth; var movement = Ai.GetGoodMovement(Ai.maxRecursionDepth); Assert.That(bestMovement, Is.EqualTo(movement)); }
/// <summary> /// Распознаёт открытый клиент игры по скриншоту. /// Анализирует состояние игры и делает ход при помощи мыши. /// </summary> /// <returns>Было ли состояние игры распознано как корректное</returns> public bool MakeMovement() { start = Stopwatch.StartNew(); var screen = GetScreenshot(); Logger.Log(screen); gameState = GetGameState(screen); if (gameState == null) { List<Point> closes = templatesStorage.GetPositions("Close", screen, true); if (closes.Count > 0) { Mouse.Move(closes[0]); Thread.Sleep(200); Mouse.LeftClick(); Thread.Sleep(200); Mouse.Move(0, 0); return true; } else { closes = templatesStorage.GetPositions("RandomPlayerGame", screen, true); if (closes.Count > 0) { Mouse.Move(closes[0]); Thread.Sleep(200); Mouse.LeftClick(); Thread.Sleep(200); Mouse.Move(0, 0); Thread.Sleep(5000); return true; } } return false; } var Ai = new ClassicAI(gameState); var movement = Ai.GetGoodMovement(3); MakeMovement(movement); Logger.Log(movement); return true; }