#include <stdio.h> #include <string.h> #include <stdlib.h> #include "jogodaforca.h" #include <time.h>
int chutesdados = 0; char chutes [26]; char palavrasecreta[20];
void abertura() { printf("****************************************\n"); printf(" JOGO DA FORCA *\n"); printf("*****************************************\n"); }
void chuta () { char chute; scanf (" %c", &chute);
chutes[(chutesdados)] = chute;
(chutesdados)++;
}
int jachutou (char letra) {
int achou=0;
for (int j=0; j<chutesdados; j++) {
if (chutes[j]==letra){
achou=1;
break;
}
} return achou;
}
void desenhaforca () {
printf("Voce já deu %d chutes\n", chutesdados);
for(int i = 0; i < strlen(palavrasecreta); i++) {
int achou = jachutou(palavrasecreta[i]);
if(achou) {
printf("%c ", palavrasecreta[i]);
} else {
printf("_ ");
}
}
printf("\n");
}
void escolhepalavra () { FILE* f;
f = fopen("palavras.txt", "r");
if(f == 0) {
printf("Banco de dados de palavras não disponível\n\n");
exit(1);
}
int qtddepalavras;
fscanf(f, "%d", &qtddepalavras);
srand(time(0));
int randomico = rand() % qtddepalavras;
for(int i = 0; i <= randomico; i++) {
fscanf(f, "%s", palavrasecreta);
}
fclose(f);
}
int enforcou () {
int chances=0;
for (int i=0; i < chutesdados; i++) {
int existe=0;
for (int j=0; j< strlen(palavrasecreta); j++) {
if (chutes[i]==palavrasecreta[j]) {
existe=1;
break;
}
}
if (!existe) {
chances++;
}
} return chances >=5;
}
int acertou() {
for (int i=0; i< strlen(palavrasecreta);i++) {
if (!jachutou(palavrasecreta[i])) {
return 0;
}
}
return 1;
}
int main () {
escolhepalavra();
abertura();do { desenhaforca ();
chuta(&chutesdados);
printf ("%s \n", palavrasecreta);
}
while (!acertou() && !enforcou());
}