Estou com um problema no jogo da forca, fiz o código seguindo a aula e quando eu chuto uma letra e acerto, ela não aparece. Copiei o código do próprio professor e a mesma coisa está acontecendo. Não consigo ver onde está o erro, alguém pode me ajudar?
#include <stdio.h>
#include <string.h>
char palavrasecreta[20];
char chutes[26];
int chutesdados = 0;
void abertura() {
printf("/****************/\n");
printf("/ Jogo de Forca */\n");
printf("/****************/\n\n");
}
void chuta() {
char chute;
printf("Qual letra? ");
scanf(" %c", &chute);
chutes[chutesdados] = chute;
chutesdados++;
}
int jachutou(char letra) {
int achou = 0;
int j;
for(j= 0; j < chutesdados; j++) {
if(chutes[j] == letra) {
achou = 1;
break;
}
}
return achou;
}
void desenhaforca() {
printf("Voce ja deu %d chutes\n", chutesdados);
int i;
for(i = 0; i < strlen(palavrasecreta); i++) {
if(jachutou(palavrasecreta[i])) {
printf("%c ", palavrasecreta[i]);
} else {
printf("_ ");
}
}
printf("\n");
}
void escolhepalavra() {
sprintf(palavrasecreta, "MELANCIA");
}
int enforcou() {
int i;
int erros = 0;
int existe = 0;
for (i=0; i< chutesdados; i++) {
int existe = 0;
int j;
for (j=0; strlen(palavrasecreta); j++) { // a letra que ele chutou é igual a letra na palavra secreta? se sim, existe = 1 pq eu achei
if (chutes[i] == palavrasecreta[j]) {
existe = 1;
break; //quebra o loop
}
}
if (!existe) erros++; //errou a letra, cai aqui e incrementa erros
}
return erros >= 5;
}
int main() {
int acertou = 0;
abertura();
escolhepalavra();
do {
desenhaforca();
chuta();
} while (!acertou && !enforcou());
}