Esempio n. 1
0
        public void ListWordsOnlyWithHints(WordsOperator wordsOperator, List <string> guessedLetters)
        {
            Console.WriteLine(wordsOperator.CollectedWordsFromCrossword.Count + " words");
            Console.WriteLine();
            var  counter                   = 0;
            var  revealedCharacters        = string.Empty;
            var  lastIndexOfguessedLetters = guessedLetters.Count - 1;
            bool switcher                  = true;
            var  listOfUpdatedWords        = new List <string>();

            foreach (var word in wordsOperator.CollectedWordsFromCrossword)
            {
                if (counter == 0 || counter == 1)
                {
                    revealedCharacters = Regex.Replace(word, wordsOperator.RevealGuessedLetters(guessedLetters), GlobalConstants.SpecificSymbolToReplaceNull);
                    counter++;
                    Console.WriteLine(1 + " " + word.Count() + " letters" + " " + revealedCharacters);
                }
                else
                {
                    revealedCharacters = Regex.Replace(word, wordsOperator.RevealGuessedLetters(guessedLetters), GlobalConstants.SpecificSymbolToReplaceNull);
                    Console.WriteLine(counter.ToString() + " " + word.Count() + " letters" + " " + revealedCharacters);
                    counter++;
                }
                listOfUpdatedWords.Add(revealedCharacters);
            }

            if (!listOfUpdatedWords.Any(x => x.Contains(guessedLetters[lastIndexOfguessedLetters])))
            {
                Counter.CounterOfWrongAnswers();
            }
        }
Esempio n. 2
0
 public CrosswordGenerator(string[,] crossword, WordsOperator wordsOperator)
 {
     this.crossword       = crossword;
     this.wordsOperator   = wordsOperator;
     this.listOfAllWords  = wordsOperator.ListOfAllWords;
     this.randomGenerator = new RandomGenerator();
     this.arrayOperator   = new ArrayOperator();
     this.wordVerificator = new WordsVerificator();
     this.painter         = new Painter();
     this.matrixWriter    = new MatrixWriter(wordsOperator);
     this.crosswordSolver = new CrosswordSolver();
 }
Esempio n. 3
0
        static void Main()
        {
            IWords englishDictionary = new EnglishWordsDictionary();
            var    wordsOperator     = new WordsOperator(englishDictionary);
            var    randomGenerator   = new RandomGenerator();
            var    painter           = new Painter();
            var    listOfAllWords    = wordsOperator.ListOfAllWords;

            painter.ChooseAGame();
            var gameOfChoice = int.Parse(Console.ReadLine());

            while (gameOfChoice != 1 || gameOfChoice != 2)
            {
                if (gameOfChoice == 1)
                {
                    string[,] crossword = new string[GlobalConstants.MatrixSize, GlobalConstants.MatrixSize];
                    var crosswordGenerator = new CrosswordGenerator(crossword, wordsOperator);
                    crosswordGenerator.GenerateFrame();
                    painter.PaintMatrix(crossword, 0, 0);
                    crosswordGenerator.GenerateCrossword();
                    break;
                }
                else if (gameOfChoice == 2)
                {
                    var wordsExplorerFieldGenerator = new WordsExplorerFieldGenerator();
                    var validWordsCounter           = new ValidWordsCounter();
                    var wordsExplorerSolver         = new WordsExplorerSolver();
                    var wordsExplorerField          = wordsExplorerFieldGenerator.GenerateField(englishDictionary.GetAplphabet);
                    var listOfExistingWords         = validWordsCounter.GetListWithDecodedWords(wordsExplorerField, listOfAllWords);
                    painter.PaintWordsExplorer(wordsExplorerField);
                    painter.GuessingAWordVisualizer(listOfExistingWords);
                    var guessedWords = Console.ReadLine();
                    wordsExplorerSolver.GuessAWord(wordsExplorerField, listOfExistingWords, guessedWords);
                    break;
                }
                else
                {
                    Console.Clear();
                    painter.ChooseAGame();
                    gameOfChoice = int.Parse(Console.ReadLine());
                }
            }
        }
Esempio n. 4
0
        public void ListAllTheWords(WordsOperator wordsOperator)
        {
            Console.WriteLine(wordsOperator.CollectedWordsFromCrossword.Count + " words");
            Console.WriteLine();
            var counter = 0;

            foreach (var word in wordsOperator.CollectedWordsFromCrossword)
            {
                if (counter == 0 || counter == 1)
                {
                    counter++;
                    Console.WriteLine(1 + " " + word.ToString());
                }
                else
                {
                    Console.WriteLine(counter.ToString() + " " + word.ToString());
                    counter++;
                }
            }
        }
Esempio n. 5
0
        public bool ShowEndScreen(WordsOperator wordsOperator, List <string> guessedLetters)
        {
            var containsSymbol     = true;
            var revealedCharacters = string.Empty;
            var revealedWords      = new List <string>();

            foreach (var word in wordsOperator.CollectedWordsFromCrossword)
            {
                revealedCharacters = Regex.Replace(word, wordsOperator.RevealGuessedLetters(guessedLetters), GlobalConstants.SpecificSymbolToReplaceNull);
                revealedWords.Add(revealedCharacters);
            }

            foreach (var word in revealedWords)
            {
                if (word.Contains(GlobalConstants.SpecificSymbolToReplaceNull))
                {
                    return(!containsSymbol);
                }
            }

            if (containsSymbol)
            {
                var score = (wordsOperator.CollectedWordsFromCrossword.Count * 1000) / Counter.ReturnWrongAnswers();
                Console.Clear();
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();
                Console.Write("        You've managed to solve {0} words with {1} wrong guesses!",
                              wordsOperator.CollectedWordsFromCrossword.Count, Counter.ReturnWrongAnswers());
                Console.WriteLine();
                Console.WriteLine("        Your score is: {0}", score);
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();
            }

            return(containsSymbol);
        }
Esempio n. 6
0
        public void SolveCrossword(string[,] crossword, WordsOperator wordsOperator)
        {
            var justAnElement  = "@";
            var guessedLetters = new List <string>()
            {
                justAnElement
            };

            painter.ListWordsOnlyWithHints(wordsOperator, guessedLetters);
            Console.WriteLine("Suggest Letter or Press ESC to exit:                         Wrong guesses: 0");
            var escapeButton = "\u001b";

            while (true)
            {
                var guessedLetter = Console.ReadKey()
                                    .KeyChar
                                    .ToString().ToLower();

                if (guessedLetter == escapeButton)
                {
                    painter.ExitScreen();
                    break;
                }

                guessedLetters.Add(guessedLetter);
                Console.Clear();
                painter.RevealLetter(crossword, guessedLetters);


                painter.ListWordsOnlyWithHints(wordsOperator, guessedLetters);
                Console.Write("Suggest Letter or Press ESC to exit:                         Wrong guesses: {0}", Counter.ReturnWrongAnswers());
                Console.WriteLine();

                if (painter.ShowEndScreen(wordsOperator, guessedLetters))
                {
                    break;
                }
            }
        }
Esempio n. 7
0
 public MatrixWriter(WordsOperator wordsCounter)
 {
     this.wordsCounter = wordsCounter;
 }