04/02/2023

Simple Hangman Game In C++ with Explanation | Source Code

In this article, we are going to write a program for Simple Hangman Game In C++ with a complete Explanation. Hangman is a guessing game for two or more players. One player thinks of a word, phrase or sentence and the other tries to guess it by suggesting letters within a certain number of guesses.

Simple Hangman Game In C++ with Source Code

Simple Hangman Game In C++ with Source Code


#include <iostream>

#include <cstdlib>

#include<ctime>

#include <string>

using namespace std;

const int MAX_TRIES = 5;
int letterFill(char, string, string & );

int main() {
  string name;
  char letter;
  int num_of_wrong_guesses = 0;
  string word;
  string words[] = {
    "India",
    "Pakistan",
    "Nepal",
    "Malaysia",
    "Philippines",
    "Australia",
    "Iran",
    "Ethiopia",
    "Oman",
    "Indonesia"
  };

  //choose and copy a word from an array of words randomly
  srand(time(NULL));
  int n = rand() % 10;
  word = words[n];

  // Initialize the secret word with the * character.
  string unknown(word.length(), '*');

  // welcome the user
  cout << "\n\nWelcome to hangman...Guess a country Name";
  cout << "\n\nEach letter is represented by a star.";
  cout << "\n\nYou have to type only one letter in one try";
  cout << "\n\nYou have " << MAX_TRIES << " tries to try and guess the word.";
  cout << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";

  // Loop until the guesses are used up
  while (num_of_wrong_guesses < MAX_TRIES) {
    cout << "\n\n" << unknown;
    cout << "\n\nGuess a letter: ";
    cin >> letter;
    // Fill the secret word with a letter if the guess is correct,
    // otherwise increment the number of wrong guesses.
    if (letterFill(letter, word, unknown) == 0) {
      cout << endl << "Whoops! That letter isn't in there!" << endl;
      num_of_wrong_guesses++;
    } else {
      cout << endl << "You found a letter! Isn't that exciting!" << endl;
    }
    // Tell the user how many guesses have left.
    cout << "You have " << MAX_TRIES - num_of_wrong_guesses;
    cout << " guesses left." << endl;
    // Check if the user guessed the word.
    if (word == unknown) {
      cout << word << endl;
      cout << "Yeah! You got it!";
      break;
    }
  }
  if (num_of_wrong_guesses == MAX_TRIES) {
    cout << "\nSorry, you lose...you've been hanged." << endl;
    cout << "The word was : " << word << endl;
  }
  cin.ignore();
  cin.get();
  return 0;
}

/* Take one character guess and the secret word, and fill in the
 unfinished guesswork. Returns the number of characters matched.
 Also, returns zero if the character is already guessed. */

int letterFill(char guess, string secretword, string & guessword) {
  int i;
  int matches = 0;
  int len = secretword.length();
  for (i = 0; i < len; i++) {
    // Did we already match this letter in a previous guess?
    if (guess == guessword[i])
      return 0;
    // Is the guess in the secret word?
    if (guess == secretword[i]) {
      guessword[i] = guess;
      matches++;
    }
  }
  return matches;
}

Hangman Game In C++ Output


Hangman Game In C++ Output

Simple Hangman Game

hangman game in c++ using array

Similar to C++ Projects



Previous Post
Next Post

post written by:

Hi, I’m Ghanendra Yadav, SEO Expert, Professional Blogger, Programmer, and UI Developer. Get a Solution of More Than 500+ Programming Problems, and Practice All Programs in C, C++, and Java Languages. Get a Competitive Website Solution also Ie. Hackerrank Solutions and Geeksforgeeks Solutions. If You Are Interested to Learn a C Programming Language and You Don't Have Experience in Any Programming, You Should Start with a C Programming Language, Read: List of Format Specifiers in C.
Follow Me

0 Comments: