コード例 #1
0
        /// <summary>
        /// Searches for a valid scrabble word.
        /// </summary>
        /// <param name="word">The word</param>
        /// <returns>The scrabble word if valid, null if no match found.</returns>
        public IScrabbleWord Search(string word)
        {
            var sWord = default(IScrabbleWord);

            if (!string.IsNullOrWhiteSpace(word))
            {
                if (_roots.ContainsKey(word[0]))
                {
                    var path = SearchForScrabblePath(_roots[word[0]], word);
                    if (path.Count == word.Length && path[path.Count - 1].IsEnd)
                    { // check we matched the whole provided word AND that we completed a word.
                        var scrabbleWord = new ScrabbleWord();
                        foreach (var node in path)
                        {
                            scrabbleWord.Add(ScrabbleTileFactory.Get(node.Value));
                        }
                        sWord = scrabbleWord;
                    }
                }
            }

            return(sWord);
        }