Beispiel #1
0
 public SimpleWordStateMachineClient(string[] words)
 {
     initialState = new SimpleWordStateMachineState(null);
     currentState = initialState;
     foreach (var word in words)
     {
         foreach (var letter in word)
         {
             if (currentState.letterStateDictionary.ContainsKey(letter))
             {
                 currentState = currentState.letterStateDictionary[letter];
             }
             else
             {
                 var newState = new SimpleWordStateMachineState(currentState);
                 currentState.letterStateDictionary.Add(letter, newState);
                 currentState = newState;
             }
         }
         currentState.IsWordEnd = true;
         currentState           = initialState;
     }
 }
Beispiel #2
0
 public void NavigateForward(char letter)
 {
     currentState = currentState.letterStateDictionary[letter];
 }
Beispiel #3
0
 public void Reset()
 {
     currentState = initialState;
 }
Beispiel #4
0
 public void NavigateBack()
 {
     currentState = currentState.previousState;
 }