Obrigado Armano,
Eu não tinha colocado o código da aula que eu estava fazendo, faltou isso para dar sentido a minha pergunta. No código abaixo, temos uma constante de string PALAVRA_SECRETA que recebe a palavra "MELANCIA". Também temos um map com o nome chutou para guardar o vetor de caracteres "MELANCIA" associado a uma informação de true ou false, para saber se aquele caractere já tinha sido chutado antes.
A minha dificuldade é encontrar em que ponto do código é feito o carregamento do vetor de caracteres "M E L A N C I A" no map chutou, assim como os valores false inicialmente no chutou também.
Segue o código da aula
#include
#include
#include
#include
using namespace std;
const string PALAVRA_SECRETA = "MELANCIA";
map<char, bool> chutou;
vector chutes_errados;
bool letra_existe(char chute){
for(char letra : PALAVRA_SECRETA){
if(chute == letra){
return true;
}
}
return false;
}
bool nao_acertou(){
for(char letra : PALAVRA_SECRETA){
if(!chutou[letra]){
return true;
}
}
return false;
}
bool nao_enforcou(){
return chutes_errados.size() < 5;
}
void imprime_cabecalho(){
cout << "" << endl;
cout << "* Jogo da Forca ***" << endl;
cout << "**" << endl;
cout << endl;
}
void imprime_erros(){
cout << "Chutes errados: ";
for(char letra: chutes_errados){
cout << letra << " ";
}
cout << endl;
}
void imprime_palavra(){
for(char letra : PALAVRA_SECRETA){
if(chutou[letra]){
cout << letra << " ";
}
else{
cout << "_ ";
}
}
cout << endl;
}
void chuta(){
cout << "Seu chute: ";
char chute;
cin >> chute;
chutou[chute] = true;
if(letra_existe(chute)){
cout << "Você acertou! Seu chute está na palavra." << endl;
}
else{
cout << "Você errou! Seu chute não está na palavra." << endl;
chutes_errados.push_back(chute);
}
cout << endl;
}
int main () {
imprime_cabecalho();
while(nao_acertou() && nao_enforcou()){
imprime_erros();
imprime_palavra();
chuta();
}
cout << "Fim de jogo!" << endl;
cout << "A palavra secreta era: " << PALAVRA_SECRETA << endl;
if(nao_acertou()){
cout << "Você perdeu! Tente novamente!" << endl;
}
else{
cout << "Parabéns! Você acertou a palavra secreta!" << endl;
}
}