Hello, I was making a hangman simulation in C++. The code runs, but not fully. Could you identify the error and fix it? #include #include // for string class functions #include #include using...


Hello,


I was making a hangman simulation in C++.


The code runs, but not fully.


Could you identify the error and fix it?



#include
#include // for string class functions
#include
#include
using namespace std;


int main()
{
// define variable to get the response from user "Yes" or "No"
string response;
// Define index variable
int w = 0;
// define number of words that need to be guessed by the user assume 4
const int WORDS = 4;


// loop
do
{
// we will define the hangman body
const char body[] = "o/|\\|\\";
// here we define the words
string words[WORDS] = {"MACAW", "SADDLE", "TOASTER", "XENOICIDE"};
// fetch size or length
string xword(words[w].length(),'*');
// define iterator to fetch the words
string::iterator i, ix = xword.begin();
// define number of words to prompt for the user
char letters[26]={"\0"};
// Now we define the variables which will be used in the simulation
int n =0, xcount = xword.length();
bool found = false, solved = false, hung = false;
int offset = 0, bodyCount = 0;


// Game play iteration
do
{
char temp;
// prompt for the character
cout<"guess a="" letter="" (here="" case="" doesn't="" matter):=""><><"'*' denotes="" number="" of="" possible=""><>
cin>>temp;
// define validation of input letters
if(isalpha(temp))
{
cout<"please enter="" letters:=""><>
}
else
continue;


// char case
letters[n]= toupper(temp);
// now intialize the index variable over the character array's word
i = words[w].begin();
// iterate until word's length ends
while(i != words[w].end())
{
// check the words
if(*i == letters[n])
{
// it is used for masking purpose. letter is found then masked it.
*(ix + offset) = *i;
found = true ;
// If a letter is found then move to the next character and in final let us know word is solved now
if(--xcount == 0)
solved = true;
}
++i;
++offset;
}
// if letter is not found then increase the body count
if(!found)
++bodyCount;


bool newline = false;


// now iterate over the incorrect counter to draw shape or hangman
for(int q = 1; q<=bodycount;>
{
// check for attempts
if(q==1 || q ==5 || q == 7)
{
newline = true;
cout<>
else if(q==4)
{
newline = true;
}
else
{
newline = false;
}
cout<>
cout<>
}
// check for attempts if exceeded
if(bodyCount>=7)
{
cout<><><"game><><>
hung = true;
break;
}
// print user guess values
cout<><"guesses:><>
for(int q=0;q<>
{
cout<>
++n;
}
}while(!solved);
cout<"word:><><>


if(!hung)
cout<><"congratulations!! you=""><>
/*if ( ++w >= WORDS )
break;*/
// prompt for respeonse
cout<"want to="" play="" again?="" yes="" or="" no:="" ";cin="">>response;
}while(!response.compare("yes"));


cout<"thank><>
return 0;
}

Jun 06, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here