Пример #1
0
        public void NextStep()
        {
            _simulationEngine.EndSimulation = true;
            for (int x = 1; x <= _simulationEngine.Configuration.Width; x++)
            {
                for (int y = 1; y <= _simulationEngine.Configuration.Height; y++)
                {
                    ProcessCoordinate(x, y);
                }
            }
            _simulationEngine.MapController.Commit();


            if (_simulationEngine.EndSimulation)
            {
                _simulationEngine.EndSubstructureSimulation();
            }
        }
Пример #2
0
        public void NextStep()
        {
            List <Point> postitionToRandom = new List <Point>();

            for (int x = 1; x <= _simulationEngine.Configuration.Width; x++)
            {
                for (int y = 1; y <= _simulationEngine.Configuration.Height; y++)
                {
                    postitionToRandom.Add(new Point(x, y));
                }
            }


            _simulationEngine.MapController.CopyMap();
            do
            {
                int randIndex = _random.Next(postitionToRandom.Count);

                ProcessCoordinateMonteCarlo(postitionToRandom[randIndex].X, postitionToRandom[randIndex].Y);

                postitionToRandom.RemoveAt(randIndex);
            } while (postitionToRandom.Count > 0);
            _simulationEngine.MapController.Commit();



            _currentMCIteration--;

            if (_currentMCIteration > 0)
            {
                _simulationEngine.EndSimulation = false;
            }
            else
            {
                _simulationEngine.EndSimulation = true;
            }


            if (_simulationEngine.EndSimulation)
            {
                _simulationEngine.EndSubstructureSimulation();
            }
        }