por algum motivo na parte de mostrar os chutes errado, as letras depois da primeira letra da palavra secreta aparecem na parte dos chutes errado.
caso eu não tenha conseguido explicar direito o problema aqui esta um exemplo:
palavra secreta: "melancia"
chuto: 'm'
chutes errados:
m _ _ _ _ _ _ _
chuto: 'a'
chutes errados: a
m _ _ a _ _ _ a
aqui esta meu codigo:
#include <iostream>
#include <cstdlib>
#include <string>
#include <map>
#include <vector>
using namespace std;
const string PALAVRA_SECRETA = "melancia";
map<char, bool> ja_chutou;
vector<char> chutes_errados;
bool letra_existe(char chute){
for(char letra : PALAVRA_SECRETA){
if(chute == letra){
return true;
}
else{
return false;
}
}
}
int main(){
cout << "*****************" << endl;
cout << "* jogo da forca *" << endl;
cout << "*****************" << endl;
cout << endl;
bool ganhou = false;
bool enforcou = false;
do{
cout << "letras erradas: ";
for(char letra : chutes_errados){
cout << letra << " ";
}
cout << endl;
for(char letra : PALAVRA_SECRETA){
if(ja_chutou[letra]){
cout << letra << " ";
}
else{
cout << "_ ";
}
}
cout << endl;
cout << "seu chute: ";
char chute;
cin >> chute;
ja_chutou[chute] = chute;
if(letra_existe(chute)){
cout << "a letra | " << chute << " | existe na palavra secreta" << endl;
}
else{
cout << "a letra | " << chute << " | nao existe na palavra secreta" << endl;
chutes_errados.push_back(chute);
}
cout << endl;
}while(!ganhou && !enforcou);
}