public static void Gameplay() { Console.WriteLine("Welcome to Hangman!"); Hangman hangman = new Hangman(-1); string underscores = string.Join(" ", hangman.ActiveGuesses); Console.WriteLine(underscores); while (!hangman.isComplete) { Console.WriteLine("Guess a letter:"); string input = Console.ReadLine(); Console.WriteLine(hangman.TryALetter(input)); } Console.WriteLine("You guessed it! The word is " + hangman.ChosenWord + "!"); Console.WriteLine("Play again? (Y/N)"); string response = Console.ReadLine(); if (response[0].ToString().ToUpper() == "Y") { Gameplay(); } else { Console.WriteLine("Thanks for playing!"); } }
public void Play_returns_solution_length() { var hangman = new Hangman(_solution, 1); var serverSolution = hangman.Play(); Assert.That(serverSolution.Length, Is.EqualTo(_solution.Length)); }
public void Player_joins_after_other_players_quit() { var scheduler = new TestScheduler(); var player2 = scheduler.CreateObserver <HangmanState>(); var hangman = new Hangman("a"); var player1 = hangman.StateObservable; var subscription = Ready(player1); scheduler.Schedule(TimeSpan.FromTicks(100), () => hangman.GuessObserver.OnNext('a')); scheduler.Schedule(TimeSpan.FromTicks(300), () => { hangman.StateObservable.Subscribe(player2); }); scheduler.Schedule(TimeSpan.FromTicks(200), () => subscription.Dispose()); var expected = new[] { OnCompleted <HangmanState>(300) }; // +--a-| // +a-| // .....+| scheduler.Start(); ReactiveAssert.AreElementsEqual(expected, player2.Messages); }
private void CreateView(Hangman hangmanObject) { Console.WriteLine(_renderHangman.SwitchAndDisplayHangmanImage(hangmanObject.GuessesLeft)); Console.WriteLine("Word to guess: {0}", _displayWord.RenderWordView(hangmanObject.LettersInWordSplit)); Console.WriteLine("Already guessed: {0}", string.Join(", ", hangmanObject.AlreadyGuessedLetters)); }
public ActionResult Guess() { char newGuess = Char.Parse(Request.Form["guess"]); //get user character guess Hangman newHangman = new Hangman(); return(View("Index", newHangman.Match(newGuess))); }
void Start() { currentScene = SceneManager.GetActiveScene().name; //background = gameObject.GetComponent<>(); if (currentScene.Equals("Level1.2")) { cont = 1; } if (currentScene.Equals("Level2.2")) { cont = 2; } if (currentScene.Equals("Level3.2")) { cont = 3; } hangman = new Hangman(cont); word = GameObject.FindWithTag("Word").GetComponent <TextMeshProUGUI>(); letters = GameObject.FindWithTag("Letters").GetComponent <TextMeshProUGUI>(); lives = GameObject.FindWithTag("Lives").GetComponent <TextMeshProUGUI>(); attempts = GameObject.FindWithTag("Attempts").GetComponent <TextMeshProUGUI>(); word.text = hangman.convertWord(); lives.text = hangman.Lives.ToString(); attempts.text = hangman.Attempts.ToString(); letters.text = ""; }
public ActionResult Lose() { string word = hangman.Word; hangman = new Hangman(); return(View(word)); }
public void SetupAndStartNewGame() { Console.WriteLine(_renderBanner.CreateBannerForGame()); // Load the Dictionary var wordList = _fileReader.LoadDictionary().ToList(); // Select and print random word var randomWord = _randomWordSelector.SelectRandomWordFromDictionary(wordList); Console.WriteLine("Lets play Hangman!"); // Assemble the Hangman Object var hangmanObject = new Hangman { WordToGuess = randomWord, LettersInWordSplit = _assembleGuessedLetters.AssembleTheGuessedLetters(randomWord) }; Console.WriteLine("Word to guess: {0}", _displayWord.RenderWordView(hangmanObject.LettersInWordSplit)); // Perform Hangman Logic _mainGame.Run(hangmanObject); Console.Clear(); // Results Screen _resultsScreen.RunResults(hangmanObject); PlayAgainQuestion(); }
public void Play_replaces_solution_with_hidden_chars() { var hangman = new Hangman(_solution, 1); var serverSolution = hangman.Play(); Assert.That(serverSolution, Is.EqualTo("_______")); }
// THIS FUNCTION HANDLES THE CREATION OF THE HUNG MAN'S BODY... // private void DrawHangmanParts(Hangman h) { Graphics g = pnlHangman.CreateGraphics(); Pen p = new Pen(Color.Blue, 2); switch (h) { case Hangman.Head: //draw a circle, use pen then x, y then width and height... g.DrawEllipse(p, 320, 120, 60, 60); break; case Hangman.Body: g.DrawLine(p, new Point(350, 180), new Point(350, 300)); break; case Hangman.Left_Arm: g.DrawLine(p, new Point(350, 210), new Point(280, 150)); break; case Hangman.Right_Arm: g.DrawLine(p, new Point(350, 210), new Point(420, 150)); break; case Hangman.Left_Leg: g.DrawLine(p, new Point(350, 300), new Point(300, 400)); break; case Hangman.Right_Leg: g.DrawLine(p, new Point(350, 300), new Point(400, 400)); break; } }
public void CapitalLetterAreFound() { var sut = new Hangman("dDBb"); Assert.That(sut.Guess('d'), Is.EqualTo("dD--")); Assert.That(sut.Guess('b'), Is.EqualTo("dDBb")); }
public void WrongGuessAfterCtor() { var sut = new Hangman("Developer"); Assert.That(sut.Guess('x'), Is.EqualTo("---------")); Assert.That(sut.Result, Is.EqualTo("---------")); }
private async Task PerformHangmanGame(TermType type) { using var hm = new Hangman(type); if (HangmanGames.TryAdd(Context.Channel.Id, hm)) { Task _client_MessageReceived(SocketMessage msg) { var _ = Task.Run(() => Context.Channel.Id == msg.Channel.Id ? hm.Input(msg.Author.Id, msg.Author.ToString(), msg.Content) : Task.CompletedTask); return(Task.CompletedTask); } hm.OnGameEnded += Hm_OnGameEnded; hm.OnGuessFailed += Hm_OnGuessFailed; hm.OnGuessSucceeded += Hm_OnGuessSucceeded; hm.OnLetterAlreadyUsed += Hm_OnLetterAlreadyUsed; _client.MessageReceived += _client_MessageReceived; try { await Context.Channel.SendConfirmAsync($"{hm.ScrambledWordCode}\n{hm.GetHangman()}", $"{GetText("hangman_game_started")} ({hm.TermType})").ConfigureAwait(false); } catch { } await hm.EndedTask.ConfigureAwait(false); _client.MessageReceived -= _client_MessageReceived; HangmanGames.TryRemove(Context.Channel.Id, out var _); } else { await ReplyErrorLocalized("hangman_running").ConfigureAwait(false); } }
public void guessIsValidLetter() { Hangman game = new Hangman(); char testString = 'r'; Assert.True(game.ValidLetterGuess(testString)); }
public void NewWord() { if (Array2 != null) { foreach (var a in Array2) { Destroy(a); } } word = GetWord(); instance = this; Array = new GameObject[word.Text.Length]; Array2 = new GameObject[word.Text.Length]; for (int i = 0; i < word.Text.Length; i++) { Array2[i] = Instantiate(letterBox, canvas.transform); Array2[i].GetComponentInChildren <Text>().text = word.Text[i].ToString(); Array2[i].transform.parent = firstLetterBoxPosition; //Array2[i].transform.position = firstLetterBoxPosition.position + Vector3.right * distance * i; Array[i] = Array2[i].GetComponentInChildren <Text>().gameObject; Array[i].SetActive(false); } letters = new List <string>(); WinCounter = word.Text.Length; LoseCounter = 11; input.SetActive(false); }
public void Getting_all_the_letters_right_makes_for_a_win() { var scheduler = new TestScheduler(); IObservable <HangmanState> Create() { var hangman = new Hangman("hello"); scheduler.Schedule(TimeSpan.FromTicks(100), () => hangman.GuessObserver.OnNext('b')); scheduler.Schedule(TimeSpan.FromTicks(200), () => hangman.GuessObserver.OnNext('e')); scheduler.Schedule(TimeSpan.FromTicks(300), () => hangman.GuessObserver.OnNext('l')); scheduler.Schedule(TimeSpan.FromTicks(400), () => hangman.GuessObserver.OnNext('o')); scheduler.Schedule(TimeSpan.FromTicks(500), () => hangman.GuessObserver.OnNext('h')); return(hangman.StateObservable); } var expected = new[] { OnNext <HangmanState>(100, hangmanState => hangmanState.RemainingGuesses == 9 && hangmanState.MaskedWord == "_____"), OnNext <HangmanState>(200, hangmanState => hangmanState.RemainingGuesses == 8 && hangmanState.MaskedWord == "_____"), OnNext <HangmanState>(300, hangmanState => hangmanState.RemainingGuesses == 8 && hangmanState.MaskedWord == "_e___"), OnNext <HangmanState>(400, hangmanState => hangmanState.RemainingGuesses == 8 && hangmanState.MaskedWord == "_ell_"), OnNext <HangmanState>(500, hangmanState => hangmanState.RemainingGuesses == 8 && hangmanState.MaskedWord == "_ello"), OnCompleted <HangmanState>(600) }; // +--b-e-l-o-h-> // +a-b-c-d-e-| ITestableObserver <HangmanState> testableObserver = scheduler.Start(Create, 100, 100, 3000); ReactiveAssert.AreElementsEqual(expected, testableObserver.Messages); }
public void game_should_be_lost() { var game = new Hangman("BELL", 3); Assert.AreEqual("Status:GameIsOn;Word:----;Guesses:;Guesses left:3", game.ToString()); var result = game.Guess("X"); Assert.AreEqual("IncorrectGuess", result.ToString()); Assert.AreEqual("Status:GameIsOn;Word:----;Guesses:X;Guesses left:2", game.ToString()); result = game.Guess("#"); Assert.AreEqual("InvalidGuess", result.ToString()); Assert.AreEqual("Status:GameIsOn;Word:----;Guesses:X;Guesses left:2", game.ToString()); result = game.Guess("BB"); Assert.AreEqual("InvalidGuess", result.ToString()); Assert.AreEqual("Status:GameIsOn;Word:----;Guesses:X;Guesses left:2", game.ToString()); result = game.Guess("L"); Assert.AreEqual("CorrectGuess", result.ToString()); Assert.AreEqual("Status:GameIsOn;Word:--LL;Guesses:X L;Guesses left:2", game.ToString()); result = game.Guess("Y"); Assert.AreEqual("IncorrectGuess", result.ToString()); Assert.AreEqual("Status:GameIsOn;Word:--LL;Guesses:X L Y;Guesses left:1", game.ToString()); result = game.Guess("Z"); Assert.AreEqual("IncorrectGuess", result.ToString()); Assert.AreEqual("Status:GameLost;Word:--LL;Guesses:X L Y Z;Guesses left:0", game.ToString()); Assert.ThrowsException <InvalidOperationException>(() => game.Guess("B")); }
public void Guessing_a_correct_letter_twice_counts_as_a_failure() { var scheduler = new TestScheduler(); IObservable <HangmanState> Create() { var hangman = new Hangman("foobar"); scheduler.Schedule(TimeSpan.FromTicks(100), () => hangman.GuessObserver.OnNext('b')); scheduler.Schedule(TimeSpan.FromTicks(200), () => hangman.GuessObserver.OnNext('b')); return(hangman.StateObservable); } var expected = new[] { OnNext <HangmanState>(100, hangmanState => hangmanState.RemainingGuesses == 9 && hangmanState.MaskedWord == "______"), OnNext <HangmanState>(200, hangmanState => hangmanState.RemainingGuesses == 9 && hangmanState.MaskedWord == "___b__"), OnNext <HangmanState>(300, hangmanState => hangmanState.RemainingGuesses == 8 && hangmanState.MaskedWord == "___b__") }; // +--b-b-> // +a-b-c-> ITestableObserver <HangmanState> testableObserver = scheduler.Start(Create, 100, 100, 3000); ReactiveAssert.AreElementsEqual(expected, testableObserver.Messages); }
public void TryALetter_ChooseWord_Underscores() { Hangman aardvark = new Hangman(0); char[] underscores = { '_', '_', '_', '_', '_', '_', '_', '_' }; Assert.AreEqual(underscores.ToString(), aardvark.ActiveGuesses.ToString()); }
Task Hm_OnGameEnded(Hangman game, string winner) { if (winner == null) { var loseEmbed = new EmbedBuilder().WithTitle($"Hangman Game ({game.TermType}) - Ended") .WithDescription(Format.Bold("You lose.")) .AddField(efb => efb.WithName("It was").WithValue(game.Term.Word.ToTitleCase())) .WithFooter(efb => efb.WithText(string.Join(" ", game.PreviousGuesses))) .WithErrorColor(); if (Uri.IsWellFormedUriString(game.Term.ImageUrl, UriKind.Absolute)) { loseEmbed.WithImageUrl(game.Term.ImageUrl); } return(Context.Channel.EmbedAsync(loseEmbed)); } var winEmbed = new EmbedBuilder().WithTitle($"Hangman Game ({game.TermType}) - Ended") .WithDescription(Format.Bold($"{winner} Won.")) .AddField(efb => efb.WithName("It was").WithValue(game.Term.Word.ToTitleCase())) .WithFooter(efb => efb.WithText(string.Join(" ", game.PreviousGuesses))) .WithOkColor(); if (Uri.IsWellFormedUriString(game.Term.ImageUrl, UriKind.Absolute)) { winEmbed.WithImageUrl(game.Term.ImageUrl); } return(Context.Channel.EmbedAsync(winEmbed)); }
public void selectWord() { Hangman game = new Hangman(); //game.newWord(); Assert.NotNull(game.word); }
public void Multiple_players_see_the_same_game_already_started() { var scheduler = new TestScheduler(); var player2 = scheduler.CreateObserver <HangmanState>(); var player3 = scheduler.CreateObserver <HangmanState>(); var hangman = new Hangman("hello"); var player1 = hangman.StateObservable; Ready(player1); scheduler.Schedule(TimeSpan.FromTicks(100), () => hangman.GuessObserver.OnNext('e')); scheduler.Schedule(TimeSpan.FromTicks(200), () => hangman.GuessObserver.OnNext('l')); scheduler.Schedule(TimeSpan.FromTicks(150), () => { hangman.StateObservable.Subscribe(player2); hangman.StateObservable.Subscribe(player3); }); var expected = new[] { OnNext <HangmanState>(150, hangmanState => hangmanState.RemainingGuesses == 9 && hangmanState.MaskedWord == "_e___"), OnNext <HangmanState>(200, hangmanState => hangmanState.RemainingGuesses == 9 && hangmanState.MaskedWord == "_ell_"), }; // +--e--l-> // +a-b--c-> // ...+b-c-> // ...+b-c-> scheduler.Start(); ReactiveAssert.AreElementsEqual(expected, player2.Messages); ReactiveAssert.AreElementsEqual(expected, player3.Messages); }
public void calling_constructor_with_invalid_numberOfGuesses_should_set_GuessesLeft_to_10() { var h = new Hangman("Sommar", 0); int result = h.GuessesLeft; Assert.AreEqual(10, result); }
public void MyTestMethod3() { var h = new Hangman("UTEPILS"); GuessResult result = h.Guess('#'); Assert.AreEqual(GuessResult.InvalidGuess, result); }
public void Hangman_EnterWord_Blank() { Hangman game = new Hangman(); bool isSuccessful = game.EnterWord(""); Assert.AreEqual(false, isSuccessful, "The EnterWord method has failed"); }
public void Hangman_FoundWord_Empty() { Hangman game = new Hangman(); bool hasFoundWord = game.FoundWord(); Assert.AreEqual(false, hasFoundWord, "The FoundWord method failed."); }
public void HangmanTest3() { Hangman hangman = new Hangman("ababab"); Assert.AreEqual("a _ a _ a _", hangman.Guess('a')); Assert.AreEqual("a _ a _ a _ # c", hangman.Guess('c')); Assert.AreEqual("You found the word! (ababab)", hangman.Guess('b')); }
public void MyTestMethod() { var h = new Hangman("UTEPILS"); GuessResult result = h.Guess('E'); Assert.AreEqual(GuessResult.CorrectGuess, result); }
public Hangman Put(int id, [FromBody] Hangman hangman) { if (ModelState.IsValid) { return(db.GetOneByIdAndUpdate(id, hangman)); } return(null); }
public void Hangman_GuessLetter_Positive() { Hangman game = new Hangman(); game.EnterWord("All"); bool isFound = game.GuessLetter("a"); Assert.AreEqual(true, isFound, "The guess is correct."); }