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;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.