Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Problemas no retorno do código

Mesmo seguindo todos os passos da aula, o meu código não me dava o retorno esperado. Então eu baixei o código original fornecido pelo instrutor, e mesmo assim o código não funciona de maneira correta, mesmo usando 2 editores diferentes.

Ele deveria retornar os espaços em branco, e quando acertado a letra, ela deveria preencher o espaço, porém, isso não acontece.

O código é esse:

#include <stdio.h>
#include <string.h>

int main() {

    char palavrasecreta[20];
    sprintf(palavrasecreta, "MELANCIA");

    int acertou = 0;
    int enforcou = 0;

    char chutes[26];
    int tentativas = 0;

    do {

        for(int i = 0; i < strlen(palavrasecreta); i++) {
            int achou = 0;

            for(int j = 0; j < tentativas; j++) {
                if(chutes[j] == palavrasecreta[i]) {
                    achou = 1;
                    break;
                }
            }

            if(achou) {
                printf("%c ", palavrasecreta[i]);
            } else {
                printf("_ ");
            }
        }
        printf("\n");

        char chute;
        printf("Qual letra? ");
        scanf(" %c", &chute);

        chutes[tentativas] = chute;
        tentativas++;


    } while (!acertou && !enforcou);

}
```
2 respostas
solução!

Oii, Luiz! Tudo bem?

Parabéns por colocar em prática o que é ensinado nas aulas, continue assim!

Luiz, no seu código, podemos ver que não foi atualizado as variáveis acertou e enforcou dentro do loop, e isso pode estar gerando o bug. Sendo assim, mesmo que você acerte todas as letras ou erre demais, o jogo nunca termina.

Como sugestão para resolver o problema, adicione algum código para atualizar as variáveis. Para exemplificar, você poderia implantar uma contagem de número de letras que o jogador acertou e, se esse número for igual ao número de letras na palavrasecreta, então o jogador acertou. Se o jogador fez um certo número de tentativas sem acertar, então ele enforcou.

Lembre-se de adaptar a sugestão de acordo com o código em sua totalidade, é preciso realizar teste e entender o que mais funciona para ele. Espero que a dica seja um bom ponto de partida para resolver o bug.

Qualquer dúvida, conte conosco para te ajudar.

Bons estudos, Luiz!

Vou tentar sim, obrigado pela ajuda.