Skip to content

Instantly share code, notes, and snippets.

@hatelove
Created May 27, 2014 10:59
Show Gist options
  • Save hatelove/56a46ad8495ad027749a to your computer and use it in GitHub Desktop.
Save hatelove/56a46ad8495ad027749a to your computer and use it in GitHub Desktop.
public enum Command
{
Next,
Reset
}
public enum State
{
State1,
State2,
State3
}
void Main()
{
var stateMachine = new StateMachine<State, Command>(State.State1)
.AddTranslation(State.State1, Command.Reset, State.State1)
.AddTranslation(State.State2, Command.Reset, State.State1)
.AddTranslation(State.State3, Command.Reset, State.State1)
.AddTranslation(State.State1, Command.Next, State.State2)
.AddTranslation(State.State2, Command.Next, State.State3);
Console.WriteLine(stateMachine.CurrentState);
stateMachine.Trigger(Command.Next);
Console.WriteLine(stateMachine.CurrentState);
stateMachine.Trigger(Command.Reset);
Console.WriteLine(stateMachine.CurrentState);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment