示例#1
0
        private IEnumerable <GameState> CreateGameStates(TemporaryGameState temporaryGameState)
        {
            foreach (NavigateDirection navigateDirection in Enum.GetValues(typeof(NavigateDirection)))
            {
                if (temporaryGameState.CanNavigate(navigateDirection))
                {
                    temporaryGameState.Navigate(navigateDirection);
                    foreach (var newGameState in CreateGameStates(temporaryGameState))
                    {
                        yield return(newGameState);
                    }
                    temporaryGameState.NavigateBack();
                }
            }

            if (temporaryGameState.IsWordExist())
            {
                yield return(temporaryGameState.GetNewGameState());
            }
        }