private void runGame() { bool needToCheckDesireOfUserForExitStatus = false; Console.WriteLine("Please type your next guess <A B C D> or 'Q' to quit"); for (int theCurrentGuess = 0; theCurrentGuess <= m_NumberOfGuesses; theCurrentGuess++) { bool theUserLose = (theCurrentGuess == m_NumberOfGuesses); if (theUserLose) { Console.WriteLine("No more Guesses allowed. You Lost."); needToCheckDesireOfUserForExitStatus = true; break; } m_NewUserGuess.UpdateGuessFromUser(m_NewUserGuess, m_RandomSolution); if (m_NewUserGuess.WishToQuit) { Console.WriteLine("You choose to quit the game, thanks for participate, Bye Bye!"); break; } m_Board.AddNewBoardLine(m_NewUserGuess.GetGuess(), m_NewUserGuess.GetFeedBack()); m_Board.PrintBoard(); if (m_NewUserGuess.Win) { StringBuilder winMessege = new StringBuilder("You guessed after "); winMessege.Append(theCurrentGuess); winMessege.Append(" steps!"); Console.WriteLine(winMessege); needToCheckDesireOfUserForExitStatus = true; break; } bool keepOnPlaying = theCurrentGuess + 1 < m_NumberOfGuesses; if (keepOnPlaying) { Console.WriteLine("Please type your next guess <A B C D> or 'Q' to quit"); } } if (needToCheckDesireOfUserForExitStatus) { bool userWantstoPlay = checkTheDesireOfTheUserForNext(); if (!userWantstoPlay) { Console.WriteLine("You choose to end the game, thanks for participate, Bye Bye!"); Console.ReadLine(); } else { StartGame(); } } }
public void UpdateGuessFromUser(UserGuess i_GuessFromUser, char[] i_WantedSolution) { bool invalidGuess = true; while (invalidGuess) { invalidGuess = false; string inputStringFromUser = Console.ReadLine(); while (inputStringFromUser == null) { Console.WriteLine("Invalid input please enter 4 charecters between A-H."); inputStringFromUser = Console.ReadLine(); } bool userDecideToQuit = inputStringFromUser[0] == 'q' || inputStringFromUser[0] == 'Q'; if (userDecideToQuit) { break; } for (int i = 0; i < inputStringFromUser.Length; i++) { bool validString = CheckIfContain(inputStringFromUser[i]); bool validStringLength = (inputStringFromUser.Length == 4); if (!validString || !validStringLength) { invalidGuess = true; Console.WriteLine(); Console.WriteLine("Invalid input please enter 4 charecters between A-H."); break; } // convert into char array char[] newGuess = inputStringFromUser.ToCharArray(); removeLetterFromList(inputStringFromUser[i]); i_GuessFromUser.SetGuess(newGuess); i_GuessFromUser.setFeedBack(new String(i_GuessFromUser.GetGuess()).ToUpper().ToCharArray(), i_WantedSolution); } } }