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"); } }
public void guess_should_be_correct() { var h = new Core.Hangman("Sommar", 6); GuessResult result = h.Guess("M"); Assert.AreEqual(GuessResult.CorrectGuess, result); }
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}"); }
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(); }
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(); }
public void WhenAllLettersGuessed_GameIsFinished() { var hangman = new Core.Hangman("a"); hangman.GuessLetter('a'); Assert.IsTrue(hangman.GameFinished); }
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); }
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); }
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); }
// 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!"); } }
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); }
public void Setup() { _fakeWordGenerator = new FakeWordGenerator(); _hangman = new Core.Hangman(_fakeWordGenerator); }
public void Init() { _hangman = new Core.Hangman("Developer"); }