public void GetPossibleMoves_ShouldGivePriorities_Appropriately() { var map = new ListMap(6); var player = new ListPlayer(1, map.Size, new Config()); var player2 = new ListPlayer(2, map.Size, new Config()); map.TakeHex(PlayerType.Blue, 0, 3); map.TakeHex(PlayerType.Red, 3, 3); map.TakeHex(PlayerType.Blue, 2, 3); map.TakeHex(PlayerType.Red, 3, 2); map.TakeHex(PlayerType.Blue, 1, 3); map.TakeHex(PlayerType.Red, 3, 1); var scout = new Pathfinder(map, player.Me); var redScout = new Pathfinder(map, player2.Me); var path = scout.GetPathForPlayer(); var redPath = redScout.GetPathForPlayer(); var inquisitor = new Inquisitor(); var possibleMovesForBlue = inquisitor.GetPossibleMoves(redPath, path, player.Me, map); TestContext.WriteLine("Blue ========="); foreach (var move in path.Where(x => x.Owner == PlayerType.White)) { TestContext.WriteLine(move); } TestContext.WriteLine("Red ========"); foreach (var move in redPath.Where(x => x.Owner == PlayerType.White)) { TestContext.WriteLine(move); } TestContext.WriteLine("Result ========="); foreach (var move in possibleMovesForBlue) { TestContext.WriteLine(move + " " + move.Priority); } }