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(); } }
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(); } }