public void PerformBeatingCheckTest() { var controller = GameFactory.CreateGameController(); var context = controller.GameContext; Assert.AreEqual(false, PositionController.MakeMove(context, 0)); }
public void PerformBeatingCheckTest2() { var controller = GameFactory.CreateGameController(); var context = controller.GameContext; PositionController.MakeMove(context, 0); PositionController.MakeMove(context, 1); PositionController.MakeMove(context, 100); Assert.AreEqual(true, PositionController.MakeMove(context, 19)); }
public void PerformBeatingCheckTest6() { var controller = GameFactory.CreateGameController(); var context = controller.GameContext; PositionController.MakeMove(context, 1); PositionController.MakeMove(context, 2); PositionController.MakeMove(context, 21); PositionController.MakeMove(context, 19); PositionController.MakeMove(context, 101); PositionController.MakeMove(context, 20); PositionController.MakeMove(context, 105); Assert.AreEqual(false, PositionController.MakeMove(context, 40)); }
private MoveCandidate analyze(int depth, int field, PositionContext position) { ConsoleLogger.LogDepth(depth); ConsoleLogger.LogMove(position); if (depth == Settings.MaxDepth) { MoveCandidate candidate = new MoveCandidate(field, position); PositionController.MakeMove(position, field); candidate.Evaluation = evaluate(position); ConsoleLogger.Log(candidate.Evaluation.ToString()); computedVariation++; return(candidate); } States move = position.Move; List <int> candidates = FindCandidates(position); if (candidates.Count == 0) { ConsoleLogger.Log("! nie znaleziono ruchow kandydatow!"); } ConsoleLogger.Log("Ilość kandydatów: " + candidates.Count); List <MoveCandidate> moveCandidates = new List <MoveCandidate>(); foreach (var i in candidates) { PositionContext newPosition = PositionContextFactory.CreatePositionContext(position); PositionController.MakeMove(newPosition, i); MoveCandidate candidate = analyze(depth + 1, i, newPosition); moveCandidates.Add(candidate); } var bestCandidate = getBest(moveCandidates, move); ConsoleLogger.Log("Z " + candidates.Count + " wariantow wybrano: " + bestCandidate.Evaluation.ToString()); return(bestCandidate); }