# include <iostream> # include <stdlib.h> # include <string.h> # include <conio.h> using namespace std; 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],word[MAXLENGTH]; char letter; int num_of_wrong_guesses=0; char words[][MAXLENGTH] = { "india", "pakistan", "nepal", "malaysia", "philippines", "australia", "iran", "ethiopia", "oman", "indonesia" }; //choose and copy a word from array of words randomly int n = rand()%9; 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; } // 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'; } /* 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; }
hangman game in c++
Thank you for your help!
ReplyDelete