#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
Friday, March 3, 2017
Hangman Source Code In C++
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment