Hangman

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10
At a glance
Powered by AI
The document shows the code for a hangman game implemented in C++. It uses arrays, strings, random number generation and input/output functions.

The code includes functions to initialize the hidden word, check if a guessed letter is in the word, and display the status of the game. It uses arrays to store the words and tracks the number of incorrect guesses.

The user is welcomed and shown the rules. Then each turn they guess a letter, the program checks if it's in the word and fills in the blanks if so. It continues until all letters are guessed or tries run out.

Hangman

c++ code
Coding:

#include <iostream>
#include <stdlib.h>
#include <string.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];
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';
}
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: i
You found a letter! Isn't that exciting
You have 5 guesses left
i***
Guess a letter: n
You found a letter! Isn't that exciting
You have 5 guesses left
i**n
Guess a letter: d
Wooops! That letter isn't in there !
You have 4 guesses left
i**n
Guess a letter: a
You found a letter! Isn't that exciting
You have 4 guesses left
i*an
Guess a letter: r
You found a letter! Isn't that exciting
You have 4 guesses left
iran
Yeah ! You got it !

You might also like