Exemplo n.º 1
0
        private void PostGeneration(World world)
        {
            var scanner    = new MapScanner(world.Map);
            var landmasses = scanner.FindLandmasses();

            foreach (var mass in landmasses)
            {
                mass.Name = this.LocationNameGenerator.Next();
                world.Landmasses.Add(mass.Id, mass);
            }

            // Todo: Can we remove cast to list?
            var pcg = new PopulationCenterGenerator(world.Landmasses.Values.ToList(), this.LocationNameGenerator);

            foreach (var pc in pcg.Next())
            {
                world.PopulationCenters.Add(pc.Id, pc);
            }

            var tg = new TerritoryGenerator(world, this.LocationNameGenerator);

            foreach (var t in tg.Next())
            {
                world.Territories.Add(t.Id, t);
            }
        }
Exemplo n.º 2
0
        public void Setup()
        {
            _console   = new ConsoleMock();
            _gameProps = new GameProps {
                Width = 15, Height = 15, MyId = 0
            };

            _console.Record(".............xx");
            _console.Record(".............xx");
            _console.Record("......xx.......");
            _console.Record("......xx.......");
            _console.Record("...............");
            _console.Record("...............");
            _console.Record("...............");
            _console.Record("...............");
            _console.Record("...............");
            _console.Record("...............");
            _console.Record("...............");
            _console.Record("...............");
            _console.Record("...............");
            _console.Record("...............");
            _console.Record("...............");

            _mapScanner = new MapScanner(_gameProps, _console);
            _sut        = new HeadPositionReducer(_gameProps, _mapScanner);
        }
        public void MustReturnCorrectOrderOfPositions_ReversedMode()
        {
            var gameProps = new GameProps {
                Width = 4, Height = 4, MyId = 0
            };

            _console.Record("....");
            _console.Record("....");
            _console.Record("....");
            _console.Record("....");
            var mapScanner = new MapScanner(gameProps, _console);
            PreComputedSpiralNavigator sut = new PreComputedSpiralNavigator(mapScanner, _console, true, gameProps);

            var firstPosition = sut.First();

            Assert.AreEqual((1, 2), firstPosition);

            Assert.AreEqual('E', sut.Next((1, 2)).Direction);
            Assert.AreEqual('N', sut.Next((2, 2)).Direction);
            Assert.AreEqual('W', sut.Next((2, 1)).Direction);
            Assert.AreEqual('W', sut.Next((1, 1)).Direction);
            Assert.AreEqual('S', sut.Next((0, 1)).Direction);
            Assert.AreEqual('N', sut.Next((3, 3)).Direction);
            Assert.AreEqual('W', sut.Next((3, 0)).Direction);
            Assert.AreEqual('W', sut.Next((2, 0)).Direction);
            Assert.AreEqual('W', sut.Next((1, 0)).Direction);
            Assert.IsNull(sut.Next((0, 0)));
        }
        public void MustReversePathAfterReset()
        {
            var gameProps = new GameProps {
                Width = 4, Height = 4, MyId = 0
            };

            _console.Record("....");
            _console.Record(".xx.");
            _console.Record(".xx.");
            _console.Record("....");
            var mapScanner = new MapScanner(gameProps, _console);
            PreComputedSpiralNavigator sut = new PreComputedSpiralNavigator(mapScanner, _console, false, gameProps);


            Assert.IsNull(sut.Next((0, 1)));
            sut.Reset();

            Assert.AreEqual('S', sut.Next((0, 1)).Direction);
            Assert.AreEqual('S', sut.Next((0, 2)).Direction);
            Assert.AreEqual('E', sut.Next((0, 3)).Direction);
            Assert.AreEqual('E', sut.Next((1, 3)).Direction);
            Assert.AreEqual('E', sut.Next((2, 3)).Direction);
            Assert.AreEqual('N', sut.Next((3, 3)).Direction);
            Assert.AreEqual('N', sut.Next((3, 2)).Direction);
            Assert.AreEqual('N', sut.Next((3, 1)).Direction);
            Assert.AreEqual('W', sut.Next((3, 0)).Direction);
            Assert.AreEqual('W', sut.Next((2, 0)).Direction);
            Assert.AreEqual('W', sut.Next((1, 0)).Direction);
            Assert.IsNull(sut.Next((0, 0)));
            sut.Reset();
            Assert.AreEqual('E', sut.Next((0, 0)).Direction);
        }
Exemplo n.º 5
0
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(this);
        }

        ScanMap();
    }
Exemplo n.º 6
0
    public void ProcessMouseRightClick()
    {
        var mousePosition = GetMousePosition();
        var goalPoint     = GetWorldCoords(mousePosition);

        Debug.Log($"Hit in {gameObject} at {goalPoint}...");

        MapScanner scanner = new MapScanner(Map);

        goalPoint = scanner.GetNearestEmptyPoint(goalPoint);
        Debug.Log($"Nearest empty point is {goalPoint}");
        OrderMaking.MakeRightClickOrder(goalPoint);
    }
Exemplo n.º 7
0
            public void Setup()
            {
                _console   = new ConsoleMock();
                _gameProps = new GameProps {
                    Width = 15, Height = 4, MyId = 0
                };

                _console.Record(".............xx");
                _console.Record(".............xx");
                _console.Record("......xx.......");
                _console.Record("......xx.......");
                var mapScanner = new MapScanner(_gameProps, _console);

                _headPositionReducer = new HeadPositionReducer(_gameProps, mapScanner);
                _sut = new EnemyTracker(_gameProps, mapScanner.GetMapOrScan(), _console, _headPositionReducer);
                _defaultEnemyLife = 6;
            }
        public void MustAvoidDeadEnd_MovingNorth()
        {
            var gameProps = new GameProps {
                Width = 4, Height = 4, MyId = 0
            };

            _console.Record("....");
            _console.Record(".x..");
            _console.Record("....");
            _console.Record("....");

            var mapScanner = new MapScanner(gameProps, _console);
            PreComputedSpiralNavigator sut = new PreComputedSpiralNavigator(mapScanner, _console, false, gameProps);


            Assert.AreEqual('E', sut.Next((0, 2)).Direction);
            Assert.AreEqual((1, 2), sut.Next((0, 2)).Position);
        }
        private void CreateApplicationEntities()
        {
            IAssetProvider        assetProvider   = new AssetProvider(new JsonParser());
            IEntitiesCreator      creator         = new EntitiesCreator(gameObject, assetProvider);
            ICoordinatesConverter coordsConverter = new CoordinatesConverter();
            IGeoJsonParser        geoParser       = new GeoJsonParser();
            IMeshGenerator        meshGenerator   = new MeshGenerator();
            IOutlineDrawer        outlineDrawer   = new OutlineDrawer();

            var mapModel = creator.CreateMapModel(mapNormal, mapForwardDirection, coordsConverter, geoParser);

            creator.CreateMapView(mapModel, meshGenerator, outlineDrawer);

            IMapScanner mapScanner = new MapScanner(mapModel.MapInfo);
            var         container  =
                creator.CreateProjectModelContainer(mapModel, coordsConverter);
            var controllerFactory = creator.CreateProjectControllerFactory(mapScanner, container);

            _manager = controllerFactory.ProjectsManager;

            _uiController = creator.CreateUiController();
        }
        public void MustAvoidIslandsInMiddle()
        {
            var gameProps = new GameProps {
                Width = 4, Height = 4, MyId = 0
            };

            _console.Record("....");
            _console.Record(".xx.");
            _console.Record(".xx.");
            _console.Record("....");
            var mapScanner = new MapScanner(gameProps, _console);
            PreComputedSpiralNavigator sut = new PreComputedSpiralNavigator(mapScanner, _console, false, gameProps);

            var firstPosition = sut.First();

            Assert.AreEqual((0, 0), firstPosition);
            Assert.AreEqual('E', sut.Next((0, 0)).Direction);
            Assert.AreEqual('S', sut.Next((3, 0)).Direction);
            Assert.AreEqual('S', sut.Next((3, 2)).Direction);
            Assert.AreEqual('N', sut.Next((0, 3)).Direction);
            Assert.IsNull(sut.Next((0, 1)));
        }
    void OnMouseOver()
    {
        if (Input.GetKeyUp(KeyCode.Q))
        {
            var mousePosition = GetMousePosition();
            var goalPoint     = GetWorldCoords(mousePosition);
            Debug.Log($"Mouse at: {goalPoint}");
        }
        if (Input.GetMouseButtonDown(1) && selectionManager.SelectedUnits.Count > 0)
        {
            var mousePosition = GetMousePosition();
            var goalPoint     = GetWorldCoords(mousePosition);

            if (IsObstacleMap)
            {
                Debug.Log($"Hit in obstacle tile at {goalPoint}...");
                MapScanner scanner = new MapScanner(Map);
                goalPoint = scanner.GetNearestEmptyPoint(goalPoint);
                Debug.Log($"Nearest empty point is {goalPoint}");
            }
            orderManager.MakeRightClickOrder(goalPoint);
        }
    }
Exemplo n.º 12
0
 public PreComputedSpiralNavigator(MapScanner mapScanner, IConsole console, bool reversedModeOn,
                                   GameProps gameProps)
 {
     _path = new ComputedPath(mapScanner.GetMapOrScan(), console, reversedModeOn, gameProps);
 }