示例#1
0
        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();
        }
示例#2
0
        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]);
        }
示例#3
0
        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]);
        }
示例#4
0
 public WeightedFuncMapSpp(SppFactory <TVertex> factory, FuncReadOnlyMap <TVertex, Edge <TVertex>[]> nextEdgesMap) : base(factory)
 {
     NextEdgesMap = nextEdgesMap;
 }
示例#5
0
 public UnweightedFuncMapSpp(SppFactory <TVertex> factory, FuncReadOnlyMap <TVertex, TVertex[]> nextVertexesMap) : base(factory)
 {
     NextVertexesMap = nextVertexesMap;
 }