Site menu
Calendar
«  March 2014  »
SuMoTuWeThFrSa
      1
2345678
9101112131415
16171819202122
23242526272829
3031
Main » 2014 » March » 21 » C++ Program for HANGMAN
6:18:14 PM
C++ Program for HANGMAN

#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;

}
Views: 1828 | Added by: Chinnu | Rating: 0.0/0
Total comments: 2
2 anuraag  
0 Spam
ENDUKU RA ILA VACHINDI.KONCHAM BRAIN USE CHEYA RA.THIS IS TOO STUPID,YOU CAN'T EVEN DO THAT

1 Chinnu  
0 Spam
Sorry,it didn't come properly.

Only registered users can add comments.
[ Registration | Login ]
Entries archive
Our poll
Rate my site
Total of answers: 12590
Site friends
  • Create a free website
  • Online Desktop
  • Free Online Games
  • Video Tutorials
  • All HTML Tags
  • Browser Kits
  • Statistics

    Total online: 1
    Guests: 1
    Users: 0