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!!
Pergunta
Aline Freceiro
Não está dando erro na compilação, quando eu coloco para girar, informa que não pode abrir!!
Editado por Aline FreceiroLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.