Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Retorno da Palavra Secreta

Oi, tudo bem?

Meu programa está retornando a palavra secreta inteira e finalizando o jogo sempre que o jogador digita e acerta o caracter que está na posição 0 da palavra. Tentei olhar o código original pra comprar e buscar ajuda na documentação e nada também. Se alguém puder ajudar ficarei imensamente grato <3

Link do drive com os arquivos: https://drive.google.com/drive/folders/1lfzvBIrtCUgamXp3fiOysIUdnRRpET0f?usp=sharing

PS: não deu pra inserir o código direto aqui pq o máximo permitido é de 5.000 caracteres kkkk

1 resposta
solução!

Sua função que está quebrando o loop do while no momento que o jogador acerta o primeiro caractere é a

bool nao_acertou() {
    for(char letra : palavra_secreta) {
        if(!chutou[letra]) {
            return true;
        }
        return false;
    }
}

no laço de repetição "for" você definiu que quando o jogador acertar um caractere, a função "nao_acertou" automaticamente retornará falso e irá quebrar o loop, a gente quer que só retorne falso caso todos os caracteres da palavra secreta sejam iguais ao caracteres já chutados, para isso é só fazer o seguinte...

bool nao_acertou() {
    for(char letra : palavra_secreta) {
        if(!chutou[letra]) {
            return true;
        }
    }
    return false;
}

apenas deixar o carinha que quebra o loop do jogo, do lado de fora do laço de repetição. Assim quando ele encontrar uma letra faltando, ele irá quebrar o laço retornando true, e não irá quebrar o loop principal do jogo(o while) retornando falso para a função "nao_acertou", só irá retornar false caso o laço FOR não pare a execução de toda a função retornando true.

e o programa está retornando a palavra secreta porque você não colocou ela dentro da condição lá no final do código, que é caso o jogador perca

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software