1
resposta

Inicialização do container map

No exemplo do curso (segue abaixo), em qual momento os índices do map são inicializados com as letras da palavra secreta? Seria no if(chutou[letra]), se sim, ele sempre gera um novo índice na posição final da estrutura a cada interação loop?

map<char, bool> chutou;

while (nao_acertou && nao_enforcou){
        for (char letra : PALAVRA_SECRETA){
            if(chutou[letra]){
                cout << letra <<" ";
            }else{
                cout <<"_ ";
            }
        }

        cout <<endl;

        char chute;
        cin >> chute;

        chutou[chute] = true;

        if(letra_existe(chute)){
            cout <<"Você Acertou! Seu chute esta na palavra"<<endl;
        }else{
            cout <<"Você Errou! Seu chute não esta na palavra"<<endl;
        }
    }
1 resposta

Olá José!

No exemplo do código que você compartilhou, os índices do map são inicializados com as letras da palavra secreta quando a linha chutou[chute] = true; é executada.

A cada iteração do loop for, a variável letra recebe uma letra da palavra secreta. Em seguida, é verificado se essa letra já foi chutada anteriormente usando chutou[letra]. Se a letra já foi chutada, o programa imprime a letra na tela. Caso contrário, imprime um "_".

Após imprimir a letra ou o "_", o programa solicita um chute ao usuário e armazena o valor na variável chute. Em seguida, a linha chutou[chute] = true; é executada, marcando a letra como chutada no map.

Dessa forma, a cada chute do usuário, o map é atualizado com a nova letra chutada.

Espero ter esclarecido sua dúvida! Se tiver mais alguma, é só me dizer. Bons estudos!