Q:

C++ Program For HANGMAN ( GAME PROJECT ) With Source Code

0

C++ Program For HANGMAN ( GAME PROJECT ) With Source Code

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

#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 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 secret word with 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 user how many guesses has left.
 cout << "You have " << MAX_TRIES - num_of_wrong_guesses;
 cout << " guesses left." << endl;
 // Check if 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 a one character guess and the secret word, and fill in the
 unfinished guessword. Returns 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;
}

Output:

Welcome to hangman...Guess a country Name

Each letter is represented by a star.

You have to type only one letter in one try

You have 5 tries to try and guess the word.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

*********

Guess a letter: p

Whoops! That letter isn't in there!

You have 4 guesses left.

*********

Guess a letter: m

Whoops! That letter isn't in there!

You have 3 guesses left.

*********

Guess a letter: a

You found a letter! Isn't that exciting!

You have 3 guesses left.

a****a**a

Guess a letter: 1

Whoops! That letter isn't in there!

You have 2 guesses left.

a****a**a

Guess a letter: 5

Whoops! That letter isn't in there!

You have 1 guesses left.

a****a**a

Guess a letter: s

You found a letter! Isn't that exciting!

You have 1 guesses left.

a*s**a**a

Guess a letter: yy

Whoops! That letter isn't in there!

You have 0 guesses left.

Sorry, you lose...you've been hanged.

The word was : australia

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now