Jogo de Forca. Desenvolva um jogo da forca. O programa terá uma lista de palavras lidas de um arquivo texto e escolherá uma aleatoriamente. O jogador poderá errar 6 vezes antes de ser enforcado.
Digite uma letra: A
-> Você errou pela 1ª vez. Tente de novo!
Digite uma letra: O
A palavra é: _ _ _ _ O
Digite uma letra: E
A palavra é: _ E _ _ O
Digite uma letra: S
-> Você errou pela 2ª vez. Tente de novo!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int main() {
FILE *ptarq;
char palavra[50], tentativa[50], letra;
int cont=0, i, k, acertos=0, tent=0;
ptarq = fopen ("palavras_forca.txt", "r");
if (ptarq == NULL) {
perror("Erro ao abrir o arquivo.");
exit(1);
}
else {
while (fgets(palavra, 49, ptarq) != NULL)
cont++;
rewind(ptarq);
srand (time(NULL));
k = rand() % cont;
for (i=0; i<=k; i++)
fgets(palavra, 49, ptarq);
fclose (ptarq);
for (i=0; palavra[i] != '\n' && palavra[i] != '\0'; i++)
tentativa[i] = '_';
tentativa[i] = '\0';
do {
tent++;
printf("%d - %s\n", tent, tentativa);
printf("Informe uma letra: ");
letra = getchar();
while(getchar() != '\n'); /* Limpa buffer de entrada */
for (i=0; palavra[i] != '\n' && palavra[i] != '\0'; i++) {
if (letra == palavra[i]) {
tentativa[i] = letra;
acertos++;
}
}
} while ((tent < 6) && (acertos < strlen(tentativa)));
}
if (acertos < strlen(tentativa))
printf("Você perdeu. A palavra é: %s\n", palavra);
else
printf("Parabéns você advinhou em %d tentativas!\n", tent);
return 0;
}
Não está dando erro na compilação, quando eu coloco para girar, informa que não pode abrir!!