Пример #1
0
        private static WordResultSet FindNewSet(string param, int indexStartSize,
                                                WordResultSet wrs, Crypto cChecker,
                                                List <string> fixedLetters, int currWordSize)
        {
            WordResultSet newSet       = new WordResultSet();
            string        intendedWord = param.Substring(indexStartSize, currWordSize).ToLower();

            for (int i = 0; i < intendedWord.Length; i++)
            {
                if (intendedWord[i] != '_')
                {
                    fixedLetters.Add(i + ":" + intendedWord[i]);
                }
            }

            foreach (var dictionary_word in wrs.wordSet)
            {
                string dict_word = dictionary_word.ToLower();
                if (cChecker.IsPattern(dict_word, fixedLetters, intendedWord.Length))
                {
                    newSet.AddNew(dictionary_word);
                }
            }
            return(newSet);
        }
Пример #2
0
        private static WordResultSet GetPatternedWordSet(string param, ListResultSet wordSet,
                                                         ref int indexStartSize,
                                                         int k, WordResultSet wrs)
        {
            Crypto        cChecker     = new Crypto();
            List <string> fixedLetters = new List <string>();

            int       currWordSize = wrs.GetWordSize();
            const int index1 = 1, index2 = 2, index3 = 3;

            if ((k - index1) >= index2)
            {
                indexStartSize = wordSet.allWordResultSets[k - index1].GetWordSize() +
                                 wordSet.allWordResultSets[k - index2].GetWordSize() +
                                 wordSet.allWordResultSets[k - index3].GetWordSize();
            }
            else if (((k - index1) > 0) & ((k - index1) < index2))
            {
                indexStartSize = wordSet.allWordResultSets[k - index1].GetWordSize() +
                                 wordSet.allWordResultSets[k - index2].GetWordSize();
            }
            else if ((k - index1) == 0)
            {
                indexStartSize = wordSet.allWordResultSets[k - index1].GetWordSize();
            }

            return(FindNewSet(param, indexStartSize, wrs, cChecker, fixedLetters, currWordSize));
        }
        public WordResultSet getWordsWithSize(int size)
        {
            WordResultSet wordSet = new WordResultSet(size);

            foreach (var word in dictionaryWords)
            {
                if (word.Length == size)
                {
                    wordSet.AddNew(word);
                }
            }
            return(wordSet);
        }
Пример #4
0
        /// <summary>
        /// This method evaluates the user's innput and checks it for patterns against
        /// specific dictionary words from a list of word sets.
        /// </summary>
        /// <param name="param">String letters and placeholders of pattern</param>
        /// <param name="wordSet">List of word sets to check</param>
        /// <returns>List of modified word sets with the correct pattern</returns>
        private ListResultSet GetPatternListSet(string param, ListResultSet wordSet)
        {
            ListResultSet simplifiedSet  = new ListResultSet();
            int           indexStartSize = 0;

            for (int k = 0; k < wordSet.allWordResultSets.Count; k++)
            {
                WordResultSet wrs    = wordSet.allWordResultSets[k];
                WordResultSet newSet = GetPatternedWordSet(param, wordSet,
                                                           ref indexStartSize, k, wrs);
                simplifiedSet.AddNew(newSet);
            }

            return(simplifiedSet);
        }
 public void AddNew(WordResultSet resultSet)
 {
     allWordResultSets.Add(resultSet);
 }