1
resposta

meu jogo nao compila corretamente

quando compilo o codigo ele nao guarda a letra digitada ele so fica contando as tentativas

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

char palavrasecreta[20];
char chutes[26];
int tentativas = 0;

void abertura() {
    printf("/****************/\n");
    printf("/ Jogo de Forca */\n");
    printf("/****************/\n\n");
}

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

    chutes[tentativas] = chute;
    tentativas++;
}

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

    return achou;
}

void desenhaforca() {

    printf("Você já deu %d chutes\n", tentativas);
    int i;
    for(i = 0; i < strlen(palavrasecreta); i++) {
        
        int achou = jachutou(palavrasecreta[i]);

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

    }
    printf("\n");

}

void escolhepalavra() {
    sprintf(palavrasecreta, "MELANCIA");
}

int main() {

    int acertou = 0;
    int enforcou = 0;
    
    escolhepalavra();
    abertura();
   

    do {

        desenhaforca();
        chuta();

    } while (!acertou && !enforcou);

}
1 resposta

Oi Carlos! Tudo bem?

Rodei o seu código aqui e parece estar funcionando do jeito esperado, não?

Todas as vezes que você erra, ele imprime apenas o (-) relacionado àquela letra. A única coisa que você precisa tomar cuidado é que as letras são maiúsculas na palavra. Assim, você não pode digitar um a minúsculo, por exemplo, que seu programa não irá reconhecer.

Tenta rodar digitando maiuscúlas e vê se vai dar certo! Qualquer coisa, estou por aqui!

Abraços e bons estudos!