C++ HANGMAN GAME PROJECT - source code of program

#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

const int MAXLENGTH=80;
const int MAX_TRIES=5;
const int MAXROW=7;

int letterFill (char, char[], char[]);
void initUnknown (char[], char[]);

int main ()
{
 char unknown [MAXLENGTH];
 char letter;
 int num_of_wrong_guesses=0;
 char word[MAXLENGTH];
 char words[][MAXLENGTH] =
 {
  "india",
  "pakistan",
  "nepal",
  "malaysia",
  "philippines",
  "australia",
  "iran",
  "ethiopia",
  "oman",
  "indonesia"
 };

 //choose and copy a word from array of words randomly
 randomize();
 int n=random(10);
 strcpy(word,words[n]);
 
     // Initialize the secret word with the * character.
 initUnknown(word, unknown);

 // 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 they guessed the word.
  if (strcmp(word, unknown) == 0)
  {
   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;
 }
 getch();
 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, char secretword[], char guessword[])
{
 int i;
 int matches=0;
 for (i = 0; secretword[i]!='\0'; 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;
}


// Initialize the unknown word

void initUnknown (char word[], char unknown[])
{
 int i;
 int length = strlen(word);
 for (i = 0; i < length; i++)
  unknown[i]='*';
 unknown[i]='\0';
}


// Project ends here

0 comments: