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
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!!
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.