Exemple #1
0
        public FiniteStateMachine(TState initialState, List <TState> states, ITransitionMechanism <TState, TAction> transitionMechanism,
                                  List <TState> acceptedStates, MissingTransitionActionBehaviour behaviour = MissingTransitionActionBehaviour.Ignore)
        {
            if (!states.Contains(initialState))
            {
                throw new ArgumentException("The initial state must be an element of the set of states.", nameof(initialState));
            }

            if (acceptedStates.Except(states).Any())
            {
                throw new ArgumentException("Accpedted states must be a subset of the set of states.", nameof(acceptedStates));
            }

            InitialState        = initialState;
            States              = states;
            TransitionMechanism = transitionMechanism;
            AcceptedStates      = acceptedStates;
            Behaviour           = behaviour;

            ResetState();
            ResetHistory();
        }
Exemple #2
0
 public FiniteStateMachine(TState initialState, List <TState> states, ITransitionMechanism <TState, TAction> transitionMechanism,
                           MissingTransitionActionBehaviour behaviour = MissingTransitionActionBehaviour.Ignore)
     : this(initialState, states, transitionMechanism, new List <TState>(), behaviour)
 {
 }