예제 #1
0
        public void guess_should_be_invalid()
        {
            var         h      = new Core.Hangman("Sommar", 6);
            GuessResult result = h.Guess("ma");

            Assert.AreEqual(GuessResult.InvalidGuess, result);

            result = h.Guess(".");
            Assert.AreEqual(GuessResult.InvalidGuess, result);
        }
예제 #2
0
        public void guess_should_be_AlreadyGuessed()
        {
            //only to add the letter M to the Hashmap before the test
            var         h      = new Core.Hangman("Sommar", 6);
            GuessResult result = h.Guess("M");

            Assert.AreEqual(GuessResult.CorrectGuess, result);

            //the actual "AlreadyGuessed test"
            result = h.Guess("M");
            Assert.AreEqual(GuessResult.AlreadyGuessed, result);
        }
예제 #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to hangman!");

            var hangman = new Core.Hangman("MAMMA", 3);

            Console.Write("Your guess: ");
            string guess = Console.ReadLine();

            /*
             * M  ==> Correct
             * A ==> Correct
             * MM ==> Invalid
             # ==> Invalid
             # Q ==> Wrong
             # ==> AlreadyGuessed
             #
             */

            var result = hangman.Guess(guess);

            if (result == Core.GuessResult.IncorrectGuess)
            {
                Console.WriteLine("Incorrect!");
            }
            else if (result == Core.GuessResult.AlreadyGuessed)
            {
                Console.WriteLine("You've already guessed that letter");
            }
        }
예제 #4
0
        public void guess_should_be_correct()
        {
            var         h      = new Core.Hangman("Sommar", 6);
            GuessResult result = h.Guess("M");

            Assert.AreEqual(GuessResult.CorrectGuess, result);
        }
예제 #5
0
        static void Main(string[] args)
        {
            _hangman = new Core.Hangman(GenerateARandomWord(), 6);


            while (_hangman.KeepPlaying)
            {
                PrintLivesLeft();

                PrintAllCorrectCharacters();

                PrintGuesses();

                Console.Write("Your guess: ");
                string guess = Console.ReadLine();


                var result = _hangman.Guess(guess.ToUpper());

                switch (result)
                {
                case Core.GuessResult.InvalidGuess:
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("Invalid input!");
                    break;
                }

                case Core.GuessResult.IncorrectGuess:
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Incorrect Guess!");
                    break;
                }

                case Core.GuessResult.AlreadyGuessed:
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("You've already guessed that letter");
                    break;
                }

                default:
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("Correct Guess");
                    break;
                }
                }

                Console.ResetColor();
                WaitForUserInput();
                Console.ReadLine();
                Console.Clear();
            }


            PrintingTheEndOfTheGame();
        }
예제 #6
0
파일: Program.cs 프로젝트: stbak/hangman
        // 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!");
            }
        }