예제 #1
0
        public Form3()
        {
            InitializeComponent();

            wordList = new WordList()
            {
                MinWordLength = minWordLength, MaxWordLength = maxWordLength
            };

            boardModel      = new BoardLettersModel(gridSizeX, gridSizeY);
            boardController = new BoardController(boardModel, lettersGrid);

            subBoardModel      = new BoardLettersModel(3, 3);
            subBoardController = new BoardController(subBoardModel, letters1);

            boardSaver = new BoardSaver(new BoardLettersModel[] { boardModel, subBoardModel });

            wordFinder = new WordFinder(boardModel, wordList,
                                        new RightDownSubstituteDirectionStrategy(subBoardModel),
                                        new IntersectingNeighborValidationStrategy(wordList))
            {
                WordMustEndWithSpace      = true,
                WordMustHaveSubstitutions = true,
            };

            lettersGrid.TextChanged += LettersGrid_TextChanged;

            SetBonusTiles();
        }
예제 #2
0
        static void Main(string[] args)
        {
            WordFinder _wf = new WordFinder(new string[] { "chill", "wind", "snow", "cold", "agis" });

            Console.WriteLine(String.Join(",", _wf.Find(new string[] { "abcdc", "fgwio", "chill", "pqnsd", "uvdxy" })));
            Console.ReadKey();
        }
예제 #3
0
        public Form2()
        {
            InitializeComponent();

            wordList = new WordList()
            {
                MinWordLength = minWordLength, MaxWordLength = maxWordLength
            };
            boardModel      = new BoardLettersModel(gridSizeX, gridSizeY);
            boardController = new BoardController(boardModel, lettersGrid);
            wordFinder      = new WordFinder(boardModel, wordList, new AllOtherTilesDirectionStrategy());

            lettersGrid.TextChanged += LettersGrid_TextChanged;
        }
예제 #4
0
        static void Main(string[] args)
        {
            // You can edit both text files to test different words and matrices.
            // I generated my matrix using this tool http://www.unit-conversion.info/texttools/random-string-generator/
            // Then I add the words I want to finde to the matrix and to the word stream.
            var wordMatrix = File.ReadAllLines("wordmatrix.txt");
            var wordStream = File.ReadAllLines("wordstream.txt");

            var wordFinder    = new WordFinder(wordMatrix);
            var topFoundWords = wordFinder.Find(wordStream);

            // Write the result to the console for testing purposes.
            // The result should show the top ten most found words from the word stream inside the matrix.
            Console.Write(string.Join(Environment.NewLine, topFoundWords));
        }
예제 #5
0
        static void Main(string[] args)
        {
            //word dictionary - input
            var dictionary = new string[] { "chill", "wind", "snow", "cold" };
            //matrix
            var src = new string[] { "abcdc", "fgwio", "chill", "pqnsd", "uvdxy" };

            WordFinder           wordFinder   = new WordFinder(dictionary);
            IEnumerable <string> wordsMatched = wordFinder.Find(src);

            foreach (string matchedWords in wordsMatched)
            {
                Console.WriteLine(matchedWords);
            }
            Console.Read();
        }
예제 #6
0
        static void Main(string[] args)
        {
            Console.WriteLine("WORD FINDER");
            Console.WriteLine();
            Console.WriteLine("Press Enter to start or Esc to exit");
            Console.WriteLine();

            while (Console.ReadKey(true).Key != ConsoleKey.Escape)
            {
                IEnumerable <string> rndMatrix = GetRandomListOfStrings();
                List <string>        matrix    = rndMatrix.ToList();
                foreach (string s in matrix)
                {
                    Console.WriteLine(s);
                }

                Console.WriteLine();
                Console.WriteLine("Please enter a list of words separated by comma and press enter to search");
                string line = Console.ReadLine();

                WordFinder           finder = new WordFinder(matrix);
                IEnumerable <string> res    = finder.Find(line.Split(','));

                Console.WriteLine();

                if (res.Count() > 0)
                {
                    Console.WriteLine("Found:");
                    foreach (string val in res)
                    {
                        Console.WriteLine(val);
                    }
                }
                else
                {
                    Console.WriteLine("No matches found");
                }

                Console.WriteLine();
                Console.WriteLine("Press Enter to start again or Esc to exit");
                Console.WriteLine();
            }

            Environment.Exit(0);
        }
예제 #7
0
        static void Main(string[] args)
        {
            var words = new List <string> {
                "cold", "wind", "snow", "chill", "Hope", "Linux", "Hat", "Sky", "Fish", "Dog", "Love"
            };

            var wordFinder = new WordFinder(Mock.Data());
            var foundWords = wordFinder.Find(words);

            // Print it
            Console.WriteLine("---------------------------- Frecuency ----------------------------");
            wordFinder.ResultList.PrintFrecuency();
            Console.WriteLine("--------------------  Top 10 order by Frecuency --------------------");
            foundWords.PrintList();


            Console.ReadLine();
        }
        public void WordFoundUsingSubstituteLetters(int StartRow, int StartColumn, bool horizonal, string boardWord, string subLetters, string expectedWord, bool expectedToFind)
        {
            //arrange
            var MockFileService = new Mock <FileService>();

            MockFileService.Setup(f => f.OpenFileStream(It.IsAny <string>())).Returns((() => TestFormatters.StringToStream(testDictionaryFile)));

            var wordList = new WordList(MockFileService.Object)
            {
            };

            wordList.LoadDictionary(DictionaryEdition.ENABLE);

            var boardModel = new BoardLettersModel(16, 16);

            boardModel.PlaceWord(0, 0, boardWord, horizonal ? new Direction(0, 1) : new Direction(1, 0));

            var substituionLetters = new BoardLettersModel(1, 7);

            substituionLetters.PlaceWord(0, 0, subLetters, new Direction(0, 1));

            var wordFinder = new WordFinder.WordFinder(boardModel, wordList, new RightDownSubstituteDirectionStrategy(substituionLetters));

            //act
            List <Word> words = wordFinder.FindWords();

            //assert
            var word = words.Find(w => w.Text == expectedWord);

            if (expectedToFind)
            {
                Assert.NotNull(word);
            }
            else
            {
                Assert.Null(word);
            }
        }
예제 #9
0
        static void Main(string[] args)
        {
            try
            {
                var faker = new Faker("en");

                var words = faker.Random.WordsArray(faker.Random.Int(min: 500, max: 500));

                Console.WriteLine("Random Words------------------");
                foreach (var line in words)
                {
                    System.Console.WriteLine(line);
                }

                var matrixWords = new List <string>();
                for (int i = 0; i < faker.Random.Int(min: 100, max: 300); i++)
                {
                    matrixWords.Add(faker.PickRandom(words));
                }

                Console.WriteLine("\nRandom Words to generate Matrix----------");
                foreach (var line in matrixWords)
                {
                    System.Console.WriteLine(line);
                }


                var matrix = new MatrixGenerator(64, 64, matrixWords);

                var matrixList = matrix.ToStringArray();

                Console.WriteLine("\nMatrix-------------");
                foreach (var line in matrixList)
                {
                    System.Console.WriteLine(line);
                }

                var finder = new WordFinder.WordFinder(matrixList);

                var s1 = new Stopwatch();
                s1.Start();

                var result = finder.Find(words);
                s1.Stop();

                Console.WriteLine($"\nlapsed time {s1.ElapsedMilliseconds} ms -----------------");


                Console.WriteLine("\nTop 10 most repeated found-----------------");
                foreach (var line in result)
                {
                    System.Console.WriteLine(line);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Console.WriteLine("\nPress any key to finish-----------------");
                System.Console.ReadKey();
            }
        }
예제 #10
0
        static void Main(string[] args)
        {
            WordFinder finder = new WordFinder(new List <string>()
            {
                "W", "X", "Y", "Y", "K", "C", "O", "D", "S", "Z", "G", "A", "T", "Q", "I", "U", "T", "A", "H", "A", "D", "Z", "F", "Y", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "D", "Y", "U", "C", "K", "A", "E", "I", "U", "X", "O", "E", "P", "T", "L", "Q", "E", "S", "Z", "V", "H", "H", "S", "U", "J", "J", "N", "G", "L", "B", "B", "Z", "L", "K", "B", "G", "D", "J", "H", "I", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "S", "J", "M", "T", "C", "R", "M", "F", "H", "I", "A", "I", "B", "F", "H", "A", "R", "I", "Z", "T", "H", "N", "R", "M", "D", "A", "C", "I", "G", "X", "F", "E", "I", "A", "A", "Q", "X", "X", "U", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "S", "K", "V", "T", "I", "V", "Y", "I", "B", "I", "Q", "Z", "C", "I", "I", "Z", "I", "M", "Y", "H", "A", "S", "M", "H", "K", "N", "G", "S", "I", "P", "Z", "V", "D", "Q", "L", "Z", "J", "J", "E", "C", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "H", "A", "L", "X", "E", "S", "Q", "Y", "S", "K", "P", "A", "S", "Z", "P", "B", "C", "N", "E", "Y", "P", "Y", "N", "R", "K", "R", "X", "Y", "N", "Y", "N", "T", "D", "B", "M", "K", "T", "U", "B", "S", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "E", "M", "C", "L", "P", "X", "C", "Y", "C", "S", "V", "F", "A", "A", "Y", "B", "H", "D", "F", "N", "Z", "S", "O", "R", "L", "B", "U", "K", "C", "S", "D", "U", "D", "H", "N", "L", "Z", "O", "N", "G", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "G", "T", "H", "K", "X", "C", "U", "J", "N", "T", "M", "R", "C", "W", "U", "G", "X", "T", "K", "U", "O", "R", "K", "M", "J", "P", "V", "Y", "D", "E", "K", "M", "A", "G", "N", "L", "M", "G", "Q", "B", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "X", "D", "Q", "G", "D", "M", "S", "Y", "J", "S", "H", "L", "I", "U", "K", "H", "Q", "Z", "C", "V", "F", "J", "W", "G", "Z", "D", "X", "P", "F", "B", "Q", "Y", "N", "G", "Y", "T", "E", "J", "U", "W", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "D", "P", "R", "O", "I", "U", "G", "R", "N", "S", "D", "J", "A", "X", "V", "Q", "F", "K", "I", "N", "R", "R", "X", "L", "H", "E", "H", "V", "X", "J", "B", "X", "W", "G", "J", "G", "E", "I", "D", "F", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "T", "Q", "L", "R", "Q", "K", "C", "E", "B", "N", "P", "F", "J", "R", "J", "V", "F", "K", "W", "M", "I", "B", "S", "N", "A", "D", "Q", "L", "D", "G", "I", "S", "V", "C", "B", "N", "H", "Y", "Y", "D", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "C", "J", "N", "F", "D", "D", "Q", "Y", "E", "P", "S", "M", "H", "D", "A", "G", "G", "T", "R", "C", "X", "S", "G", "T", "F", "I", "E", "V", "Q", "I", "M", "K", "R", "F", "C", "Y", "Y", "W", "Z", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "A", "X", "U", "F", "P", "P", "P", "N", "V", "U", "T", "Z", "T", "H", "R", "Z", "O", "O", "Y", "J", "K", "B", "J", "V", "Z", "C", "E", "Z", "E", "Q", "D", "O", "D", "V", "X", "O", "Q", "J", "J", "A", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "U", "G", "T", "E", "T", "C", "M", "Y", "D", "M", "L", "A", "M", "C", "A", "D", "L", "H", "N", "R", "X", "Z", "J", "K", "H", "L", "H", "C", "Z", "F", "T", "N", "P", "W", "N", "I", "A", "L", "R", "M", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "E", "P", "P", "S", "M", "S", "I", "N", "P", "G", "I", "A", "J", "O", "Y", "Z", "J", "C", "W", "T", "Q", "Q", "L", "O", "S", "J", "Q", "Z", "R", "V", "M", "C", "O", "S", "H", "K", "W", "K", "Q", "I", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "K", "G", "A", "U", "K", "K", "K", "R", "E", "T", "Y", "G", "M", "R", "A", "S", "N", "O", "J", "A", "X", "Y", "D", "H", "O", "W", "X", "K", "C", "P", "W", "H", "E", "G", "M", "H", "D", "Y", "B", "W", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "U", "E", "Y", "P", "S", "K", "R", "J", "E", "M", "T", "P", "W", "N", "G", "M", "F", "U", "B", "S", "X", "Y", "B", "J", "C", "Y", "S", "Z", "A", "J", "C", "Z", "Q", "P", "H", "B", "S", "T", "X", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "X", "F", "Y", "C", "E", "E", "V", "K", "S", "O", "U", "E", "R", "G", "L", "L", "K", "H", "N", "T", "C", "T", "C", "T", "F", "I", "U", "J", "O", "X", "K", "Z", "Q", "L", "T", "Y", "U", "C", "T", "K", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "E", "T", "S", "I", "P", "H", "V", "Q", "R", "C", "H", "W", "M", "N", "A", "X", "X", "V", "G", "X", "B", "K", "A", "Q", "A", "A", "X", "C", "Q", "P", "G", "B", "A", "A", "L", "F", "P", "J", "L", "L", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "H", "D", "R", "J", "A", "B", "C", "X", "F", "W", "L", "Q", "B", "O", "X", "S", "L", "R", "Z", "Q", "P", "Y", "L", "V", "P", "G", "R", "V", "P", "S", "K", "L", "R", "D", "J", "F", "Q", "O", "L", "J", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "M", "F", "X", "R", "N", "R", "G", "T", "J", "F", "R", "O", "P", "K", "M", "I", "K", "D", "C", "G", "L", "Q", "X", "C", "F", "X", "A", "M", "G", "I", "F", "T", "E", "Q", "K", "Z", "H", "A", "E", "F", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "D", "K", "R", "Y", "O", "H", "N", "A", "U", "N", "H", "M", "D", "L", "C", "Z", "H", "F", "G", "F", "U", "Q", "O", "Q", "P", "Y", "N", "Q", "I", "V", "W", "R", "D", "A", "O", "U", "J", "X", "S", "M", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "E", "E", "Z", "P", "N", "J", "C", "R", "J", "W", "T", "L", "C", "V", "R", "O", "H", "W", "X", "R", "N", "L", "M", "R", "W", "X", "B", "D", "Y", "L", "G", "F", "Y", "W", "U", "O", "N", "S", "B", "P", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "U", "Q", "D", "D", "D", "C", "R", "Z", "N", "G", "G", "C", "U", "C", "D", "S", "Q", "T", "U", "Z", "E", "H", "H", "T", "O", "K", "J", "L", "A", "T", "E", "J", "B", "H", "C", "K", "U", "U", "S", "N", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "U", "W", "G", "Y", "A", "C", "A", "I", "X", "K", "K", "K", "Z", "Q", "X", "Q", "J", "N", "J", "G", "Y", "U", "P", "T", "N", "M", "P", "M", "A", "X", "E", "H", "G", "Y", "D", "A", "R", "M", "L", "M", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "G", "D", "T", "G", "C", "C", "L", "G", "U", "J", "K", "U", "A", "M", "B", "F", "C", "M", "N", "M", "K", "J", "E", "S", "O", "L", "Q", "Y", "A", "V", "P", "A", "A", "H", "B", "M", "O", "E", "Z", "B", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "X", "C", "T", "P", "G", "R", "I", "V", "S", "Y", "Z", "Y", "N", "K", "Z", "U", "N", "A", "V", "X", "T", "S", "T", "I", "J", "P", "A", "O", "B", "T", "W", "G", "J", "W", "T", "G", "S", "D", "I", "P", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "R", "I", "Q", "G", "I", "Y", "M", "U", "O", "R", "C", "R", "B", "D", "A", "H", "F", "T", "F", "W", "T", "J", "B", "L", "A", "J", "Z", "B", "Z", "H", "W", "R", "X", "P", "A", "K", "L", "E", "F", "I", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "M", "A", "A", "Z", "J", "Y", "O", "K", "D", "R", "L", "D", "F", "X", "W", "T", "Z", "B", "G", "I", "E", "W", "V", "N", "Y", "P", "Q", "O", "S", "A", "R", "T", "Q", "K", "Y", "A", "D", "L", "R", "O", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "S", "N", "C", "R", "F", "P", "N", "T", "M", "N", "V", "X", "Z", "M", "R", "J", "S", "D", "K", "F", "K", "U", "N", "Y", "D", "T", "H", "W", "C", "E", "Q", "D", "L", "X", "K", "M", "V", "R", "N", "B", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "S", "R", "V", "J", "E", "D", "X", "V", "A", "K", "F", "C", "W", "Y", "L", "C", "X", "Z", "G", "A", "J", "E", "C", "P", "V", "M", "H", "T", "H", "M", "O", "M", "T", "R", "Q", "S", "Y", "H", "Z", "Y", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "N", "I", "G", "N", "Y", "N", "I", "S", "M", "Z", "E", "Q", "N", "V", "T", "O", "X", "F", "A", "R", "C", "L", "K", "S", "P", "J", "M", "C", "W", "I", "S", "K", "F", "V", "U", "R", "E", "Y", "W", "M", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "X", "Q", "H", "V", "B", "O", "M", "R", "T", "Z", "Y", "J", "V", "Y", "W", "J", "J", "S", "R", "S", "L", "Q", "W", "W", "E", "V", "D", "R", "A", "Q", "X", "A", "F", "X", "X", "V", "N", "U", "Z", "R", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "J", "S", "H", "Z", "Z", "K", "S", "E", "Z", "Q", "N", "Q", "E", "P", "E", "Z", "L", "F", "O", "S", "C", "Z", "G", "Z", "L", "Q", "H", "U", "L", "X", "C", "C", "U", "G", "I", "R", "C", "G", "S", "T", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "O", "Y", "H", "C", "Q", "R", "M", "L", "A", "X", "I", "X", "X", "J", "P", "B", "Q", "U", "T", "U", "J", "H", "O", "R", "A", "N", "K", "R", "S", "V", "Q", "T", "D", "Q", "G", "F", "J", "G", "O", "V", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "X", "U", "T", "L", "Y", "G", "V", "X", "U", "G", "N", "B", "T", "K", "E", "B", "D", "M", "T", "B", "I", "P", "I", "W", "R", "P", "R", "E", "W", "T", "F", "W", "F", "U", "C", "M", "U", "A", "Q", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "Z", "X", "X", "S", "G", "P", "T", "X", "D", "Z", "Q", "Z", "N", "Y", "M", "R", "G", "S", "V", "C", "R", "N", "D", "D", "Y", "U", "Q", "D", "Z", "B", "V", "M", "F", "R", "F", "Y", "H", "I", "A", "V", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "C", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "H", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "A", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "L", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "L", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "E", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "N", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "G", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "E", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "Q", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "T", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "B", "Z", "K", "R", "U", "H", "X", "X", "W", "W", "B", "D", "J", "A", "E", "K", "C", "S", "E", "P", "Z", "V", "F", "N", "N", "M", "R", "W", "L", "Y", "T", "N", "Y", "I", "H", "F", "S", "B", "L", "E", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "P", "A", "P", "N", "K", "Q", "C", "F", "S", "M", "L", "A", "K", "Q", "O", "Y", "X", "F", "S", "R", "G", "X", "V", "R", "U", "Z", "O", "U", "T", "P", "U", "E", "L", "B", "T", "H", "I", "U", "S", "H", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "V", "Z", "H", "N", "S", "Z", "Q", "K", "L", "U", "H", "N", "F", "P", "X", "W", "S", "V", "T", "O", "M", "I", "U", "N", "L", "X", "T", "S", "S", "W", "T", "H", "N", "C", "L", "I", "M", "G", "F", "O", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D",
                "E", "C", "Z", "N", "X", "K", "W", "U", "Q", "S", "L", "R", "K", "R", "E", "X", "Q", "K", "Y", "W", "B", "H", "A", "V", "T", "U", "F", "O", "F", "V", "D", "B", "C", "B", "Z", "W", "V", "U", "K", "C", "L", "Y", "S", "I", "T", "Y", "R", "E", "J", "U", "E", "Q", "F", "W", "Z", "E", "L", "Y", "S", "I", "T", "Y", "R", "D"
            });

            var resultWords = finder.Find(new List <string>()
            {
                "ERIC", "FRICK", "TEST", "CODE", "CHALLENGE"
            });

            //CODE word is not in the puzzle

            Console.WriteLine(String.Join(", ", resultWords));
        }