1
resposta

Função MAP

Olá, boa tarde!

Segue o código abaixo para tirar uma dúvida:

#include <iostream>
#include <string>
#include <map>
using namespace std;

//==============================================================
const string WORD_SECRET = "MELANCIA";
map<char, bool> chutou; //Dicionário map<chave, valor> nome dict;
//==============================================================
bool ler_chute(char chute){
    for(char letra : WORD_SECRET){
        if(chute == letra){
            return true;
            break;
        }
    }
    return false;
}
//==============================================================

int main(){

    bool nao_acertou = true;
    bool nao_errou = true;    

    while(nao_acertou && nao_errou){

        // Laço de repetição que representa cada chute que a pessoa deu e imprime a letra o o underline
        for(char letra : WORD_SECRET){
            if(chutou[letra]){                  //JÁ CHUTOU A LETRA?
                cout << letra << " " << endl;
            }
            else{
                cout << "_ " << endl;
            }
        }
        cout << endl;

        char chute;
        cin >> chute;

        chutou[chute] = true;

        if(ler_chute(chute)){
            cout << "Você acertou o chute!" << endl;
        }
        else{
            cout << "Você errou o chute!" << endl;
        }
    }
}

Poderia me explicar como a função map<> se relaciona com a palavra secreta (WORD_SECRET)? Não entendi esse ponto.

1 resposta

Negativo. O Map tem relação apenas com os characteres normais. Se você chutar o A uma vez, independente do que tenha no word_secret ou não, você pode modificar o map['A'] para true;

você pode ver mais como o map funciona através desta referência: https://cplusplus.com/reference/map/map/map/