Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I actually have a code that needs to be looked over. I am not sure what I am doi

ID: 3779830 • Letter: I

Question

I actually have a code that needs to be looked over. I am not sure what I am doing wrong. Basically supposed to be a game where you guess the word with 10 guesses.

//Lab 13-2.cpp - Guess the 5 letter word

#include <iostream>

#include <string>

using namespace std;

int main ()

{

//declare variables

string origWord = "";

string letter = "";

char dashReplaced = 'N';

char gameOver = 'N';

int numIncorrect = 0;

string displayWord = "-----";

  

//get original word

do //begin loop

{

cout << "Enter a 5-letter word in uppercase: ";

getline (cin, origWord);

} while (origWord.length() != 5);

  

//clear the screen

system ("cls");

  

//start guessing

cout << "Guess this word: " <<

displayWord << endl;

while (gameOver == 'N')

{

cout << "Enter an uppercase letter: ";

cin >> letter;

  

//search for the letter in the original word

for (int x = 0; x < 5; x += 1)

{

//if the current character matches

//the letter, replace the corresponding

//dash in the displayWord variable

//and then

//set the dashReplaced variable to 'Y'

if (origWord.substr(x, 1) == letter)

{

displayWord.replace(x, 1, letter);

dashReplaced = 'Y';

} //end if

} //end for

//if a dash was replaced check whether the

//displayWord variable contains any dashes

if (dashReplaced == 'Y')

{

//if displayWord variable does not

//contain any dashes, the game is over

if (displayWord.find ("-", 0) == -1)

{

gameOver = 'Y';

cout << endl <<

"Yes, the word is " <<

origWord << endl;

cout << "Greeat guessing!" << endl;

}

else //otherwise, continue guessing

{

cout << endl <<

"Guess this word: " <<

displayWord << endl;

dashReplaced = 'N';

} //end if

}

else //processed when dashReplaced

//contains 'N'

{

//add 1 to the number

//of incorrect guesses

numIncorrect += 1;

//if the number of incorrect

//guesses is 10,

//the game is over

if (numIncorrect == 10)

{

gameOver = 'Y';

cout << endl << "Sorry,

the word is " << origWord

<< endl;

} //end if

} //end if

} //end while

return 0;

} //end of main function

Explanation / Answer

#include<iostream>
#include<string>

using namespace std;

int main()
{
  
   string origWord="";
   string letter = "";
   char dashReplaced = 'N';
   char gameOver ='N';
   int numIncorrect=0;
   string displayWord="-----";
  
   while(origWord.length()!=5)
   {
       cout<<"Enter a 5-letter word in uppercase:";
       getline(cin,origWord);
   }
  
   system("cls");
  
   cout<<"Guess this word:"<<displayWord<<endl;
  
   while(gameOver =='N')
   {
       cout<<"Enter an uppercase letter:";
       cin>>letter;
      
       for(int x=0;x<5;x+=1)
       {
          
       if(origWord.substr(x,1 )== letter)
       {
           displayWord.replace(x,1,letter);
           dashReplaced='Y';
       }
   }
  
   if(dashReplaced=='Y')
      
       {
           if(displayWord.find("-", 0)== -1)
           {
               gameOver='Y';
               cout<<endl<<"Yes, the word is" <<origWord <<endl;
               cout<<"Great guessing!"<<endl;
              
           }
          
           else
           {
               cout<<endl<<"Guess this word:" <<displayWord<<endl;
               dashReplaced = 'N';
           }  
          
       }
       else
       {
           numIncorrect +=1;
          
           if(numIncorrect== 10)
           {
               gameOver='Y';
               cout<<endl<<"Sorry , the word is" <<origWord<<endl;
              
           }
       }
   }
return 0;
       }