private async Task Think(BotContext context) { if (context.UserId == null) { throw new InvalidOperationException("Expected to be authenticated already."); } var map = new ReadOnlyMap(new Map(_map)); var fleets = _strategy.ChooseFleetsToLaunch(context.UserId.Value, map); var tasks = fleets.Select(x => context.Player.LaunchFleet(x)); await Task.WhenAll(tasks); await context.Player.EndTurn(); }
public void TestReadOnlyMapWithOverlap() { List <int> list = new List <int> { 1, 2, 3, 4 }; List <int> list2 = new List <int> { 5, 6, 7 }; IReadOnlyList <int> map = new ReadOnlyMap <int> { new ReadOnlyWindow <int>(list, 1, 1), new ReadOnlyWindow <int>(list, 0, 3), new ReadOnlyWindow <int>(list2, 1, 1) }; Assert.AreEqual(5, map.Count); CollectionAssert.AreEqual(new[] { 2, 1, 2, 3, 6 }, (ICollection)map); Assert.AreEqual(2, map[0]); Assert.AreEqual(1, map[1]); }
public void TestReadOnlyMapWithOverlap() { List<int> list = new List<int> { 1, 2, 3, 4 }; List<int> list2 = new List<int> { 5, 6, 7 }; IReadOnlyList<int> map = new ReadOnlyMap<int> { new ReadOnlyWindow<int>(list, 1, 1), new ReadOnlyWindow<int>(list, 0, 3), new ReadOnlyWindow<int>(list2, 1, 1) }; Assert.AreEqual(5, map.Count); CollectionAssert.AreEqual(new[] { 2, 1, 2, 3, 6 }, (ICollection)map); Assert.AreEqual(2, map[0]); Assert.AreEqual(1, map[1]); }
public WeightedFuncMapSpp(SppFactory <TVertex> factory, FuncReadOnlyMap <TVertex, Edge <TVertex>[]> nextEdgesMap) : base(factory) { NextEdgesMap = nextEdgesMap; }
public UnweightedFuncMapSpp(SppFactory <TVertex> factory, FuncReadOnlyMap <TVertex, TVertex[]> nextVertexesMap) : base(factory) { NextVertexesMap = nextVertexesMap; }