public void Mutate(double mutationRatio = 0.1) { var numberOfMutations = (int)(Size * mutationRatio); var random = new Random(); for (var i = 0; i < numberOfMutations; i++) { _data[(int)(LemmingUtils.GetRandom(random) * Size)] = LemmingUtils.GenerateNextDirection(); } }
public LemmingMovementDirection GetOrGenerateNextMovement(int currentStep) { if (_data.Count <= currentStep) { while (_data.Count <= currentStep) { _data.Add(LemmingUtils.GenerateNextDirection()); } } return(_data[currentStep]); }