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!!
Question
Aline Freceiro
Não está dando erro na compilação, quando eu coloco para girar, informa que não pode abrir!!
Edited by Aline FreceiroLink to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.