private static void GameInputProcessing() { while (true) { DisplayMethod(); Console.Write("\nEnter guess [# to complete]: "); var guess = Console.ReadLine()?.ToLower().Trim(); while (guess != "#" && !Alphabet.Contains(guess) || GuessProcessing.IsAlreadyGuessed(guess)) { Console.WriteLine("\nThat ain't a correct guess chief"); Console.Write("Enter guess: "); guess = Console.ReadLine()?.ToLower().Trim(); } if (guess == "#") { Console.Write("\nEnter guess to complete: "); var completeGuess = Console.ReadLine()?.ToLower().Trim(); while (string.IsNullOrWhiteSpace(completeGuess) || completeGuess.ContainsInt()) { Console.WriteLine("\nThat ain't a correct guess chief"); Console.Write("Enter guess: "); completeGuess = Console.ReadLine()?.ToLower().Trim(); } if (completeGuess == CurrentWord) { WinMethod(); } IncorrectGuess(completeGuess); continue; } GuessedCharsPositions.Add(GuessProcessing.UpdateGuessedChars(guess)); IReadOnlyCollection <int> indexes = CurrentWord.GetAllIndexes(guess).ToList().AsReadOnly(); if (indexes.Count == 0) { IncorrectGuess(guess); continue; } GuessedWord = GuessProcessing.UpdateGuessedWord(indexes); if (GuessProcessing.HasWon()) { WinMethod(); } Console.Clear(); } }