示例#1
0
        public void ImportFromFile(FileTypeEnum type, string fileName)
        {
            if (_simulationEngine.MapController == null)
            {
                _simulationEngine.MapController = new MapController();
            }
            _simulationEngine.MapController.ImportFromFile(fileName, type);

            if (_simulationEngine.Configuration == null)
            {
                _simulationEngine.Configuration = new Configuration()
                {
                    BoundaryConditions = BCEnum.NonPeriodical,
                    Neighbourhood      = NeighbourhoodEnum.Moore
                };
            }

            _simulationEngine.EndSimulation        = true;
            _simulationEngine.IsMapEmpty           = false;
            _simulationEngine.Configuration.Width  = _simulationEngine.MapController.Width - 2;
            _simulationEngine.Configuration.Height = _simulationEngine.MapController.Height - 2;

            _simulationEngine.GenerateListOfGrains();
            _simulationEngine.Configuration.NumberOfGrains = _simulationEngine.Grains.Count;
        }
示例#2
0
        public void InitializeStep()
        {
            //seed grains
            int grainsToGenerate = _simulationEngine.Configuration.NumberOfGrains;

            while (grainsToGenerate > 0)
            {
                var grain = _simulationEngine.GetRandomGrain();
                _simulationEngine.Grains.Add(grain);
                AddGrainToRandomPosition(grain);

                _simulationEngine.MapController.Commit();
                _simulationEngine.MapController.CopyMap();
                grainsToGenerate--;
            }

            _simulationEngine.GenerateListOfGrains();
        }
示例#3
0
        public void InitializeStep()
        {
            _simulationEngine.MapController.CopyMap();
            _simulationEngine.Grains = new List <Grain>();
            int grainsToGenerate = _simulationEngine.Configuration.NumberOfGrains;

            while (grainsToGenerate > 0)
            {
                var grain = _simulationEngine.GetRandomGrain();
                _simulationEngine.Grains.Add(grain);
                grainsToGenerate--;
            }


            for (int x = 1; x <= _simulationEngine.Configuration.Width; x++)
            {
                for (int y = 1; y <= _simulationEngine.Configuration.Height; y++)
                {
                    var oldNode = _simulationEngine.MapController.GetNode(x, y);
                    if (oldNode.Type == TypeEnum.Empty)
                    {
                        var grain = _simulationEngine.Grains[_random.Next(_simulationEngine.Grains.Count)];
                        var node  = new Node()
                        {
                            X     = x,
                            Y     = y,
                            Id    = grain.Id,
                            Color = grain.Color,
                            Type  = TypeEnum.Grain
                        };
                        _simulationEngine.MapController.SetNode(x, y, node);
                    }
                }
            }
            _simulationEngine.MapController.Commit();

            _currentMCIteration = _simulationEngine.Configuration.MCIterations - 1;
            _simulationEngine.GenerateListOfGrains();
        }