Exemplo n.º 1
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");
            }
        }
Exemplo n.º 2
0
        public void guess_should_be_correct()
        {
            var         h      = new Core.Hangman("Sommar", 6);
            GuessResult result = h.Guess("M");

            Assert.AreEqual(GuessResult.CorrectGuess, result);
        }
Exemplo n.º 3
0
        static private void DisplayHangmanGame(Core.Hangman hangman)
        {
            // Clear console
            Console.Clear();
            Console.WriteLine();

            // Draw hangman
            DrawHangman(numberOfGuesses - hangman.GuessesLeft);
            Console.WriteLine();

            // Write word with placeholders
            Console.WriteLine(" " + hangman.MaskedWordWithCorrectGuesses);
            Console.WriteLine();

            // Write guessed characters
            foreach (char c in hangman.GuessedCharacters)
            {
                Console.Write($" {c}");
            }
            Console.WriteLine();
            Console.WriteLine();

            // Write number of guesses remaining
            Console.WriteLine($" Guesses left: {hangman.GuessesLeft}");
        }
Exemplo n.º 4
0
        private static void Main()
        {
            System.Console.Write("Please enter a word: ");

            var searchedWord = System.Console.ReadLine();

            System.Console.Clear();

            var hangman = new Core.Hangman(searchedWord);

            while (!hangman.GameFinished)
            {
                System.Console.Write($"Enter your guess {hangman.NumberOfGuesses + 1}: ");
                var guessedLetter = System.Console.ReadLine()?.FirstOrDefault();

                if (guessedLetter == null)
                {
                    continue;
                }

                var output = hangman.GuessLetter(guessedLetter.Value);

                System.Console.Clear();
                System.Console.WriteLine(output);
            }

            System.Console.WriteLine($"Congratulations! You won with {hangman.NumberOfGuesses} guess(es).");
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
Exemplo n.º 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();
        }
Exemplo n.º 6
0
        public void WhenAllLettersGuessed_GameIsFinished()
        {
            var hangman = new Core.Hangman("a");

            hangman.GuessLetter('a');

            Assert.IsTrue(hangman.GameFinished);
        }
Exemplo n.º 7
0
        public void guesses_left_should_be_same_as_passed_into_Game()
        {
            //
            var h = new Core.Hangman("Anyword", 6);
            //Act
            int result = h.GuessesLeft;

            //Assert
            Assert.AreEqual(6, result);
        }
Exemplo n.º 8
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);
        }
Exemplo n.º 9
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);
        }
Exemplo n.º 10
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!");
            }
        }
Exemplo n.º 11
0
        public void WhenGameIsFinished_DontIncrementNumberOfGuesses()
        {
            var hangman = new Core.Hangman("a");

            hangman.GuessLetter('b');
            Assert.AreEqual(1, hangman.NumberOfGuesses);

            hangman.GuessLetter('a');
            Assert.AreEqual(2, hangman.NumberOfGuesses);

            hangman.GuessLetter('c');
            Assert.AreEqual(2, hangman.NumberOfGuesses);

            hangman.GuessLetter('a');
            Assert.AreEqual(2, hangman.NumberOfGuesses);
        }
Exemplo n.º 12
0
 public void Setup()
 {
     _fakeWordGenerator = new FakeWordGenerator();
     _hangman           = new Core.Hangman(_fakeWordGenerator);
 }
Exemplo n.º 13
0
 public void Init()
 {
     _hangman = new Core.Hangman("Developer");
 }