Exemplo n.º 1
0
        // todo: går det att extrahera metoder ur denna?
        // todo: metoder 1-7 långa
        // todo: metoderna ska beskriva sig själva
        // OO: This method starts to look really nice :)
        static private void RunGame()
        {
            string wordToGuess = GenerateRandomWord.RandomWord();

            Console.WriteLine("\nHint: " + wordToGuess); // Hint during development
            WaitForUserToContinue();

            // Create an instanse of Hangman
            Core.Hangman hangman = new Core.Hangman(wordToGuess, numberOfGuesses);

            while (!hangman.GameEnded())
            {
                DisplayHangmanGame(hangman);
                string input = GetGuessFromUser();

                GuessResult result = hangman.Guess(input);

                switch (result)
                {
                case GuessResult.AlreadyGuessed:
                    DisplayIncorrectMessage($"You have already guessed '{input.ToUpper()}'");
                    break;

                case GuessResult.CorrectGuess:
                    DisplayCorrectMessage("Correct");
                    break;

                case GuessResult.IncorrectGuess:
                    DisplayIncorrectMessage("Wrong");
                    break;

                case GuessResult.InvalidGuess:
                    DisplayIncorrectMessage("Invalid guess");
                    break;
                }

                if (!hangman.GameEnded())
                {
                    WaitForUserToContinue();
                }
            }

            DisplayHangmanGame(hangman);
            if (hangman.GuessesLeft == 0)
            {
                DisplayIncorrectMessage("You lost!");
            }
            else
            {
                DisplayCorrectMessage("You won!");
            }
        }