public void Step() { ShortStop = false; AdvancePopulation(); NewStates.CopyTo(CurrentStates, 0); string curr = GetStateString(CurrentStates); if (LastStates.Count == 10) { if (LastStates.Contains(curr)) { ShortStop = true; } LastStates.RemoveAt(0); LastStates.Add(curr); } else { LastStates.Add(curr); } }
public TransitionResult(bool fired, IEnumerable <IState <TState, TEvent> > newStates) { this.Fired = fired; this.newStates = newStates.ToArray(); this.NewState = NewStates.FirstOrDefault(); }