示例#1
0
        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();
                }
            }
        }
示例#2
0
        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);
                }
            }
        }