#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "variaveisforca.h"
char palavrasecreta [TAMANHO_PALAVRA];
char chutes[26];
int chutesdados = 0;
void escolhepalavra()
{
FILE* f;
f = fopen("palavras.txt", "r");
int qtddepalavras;
fscanf(f, "%d", &qtddepalavras);
if(f == 0)
{
printf("Desculpe, banco de dados indisponivel!\n\n");
exit(1);
}
srand(time(0));
int randomico = rand() % qtddepalavras;
for(int i = 0; i <= randomico; i++)
{
fscanf(f, "%s", palavrasecreta);
}
fclose(f);
}
void abertura()
{
printf("**************************************\n");
printf("**** Jogo de Forca das Frutas ****\n");
printf("**************************************\n\n");
}
int jachutou(char letra)
{
int achou = 0;
for(int j = 0; j < chutesdados; j++)
{
if(chutes[j] == letra)
{
achou = 1;
break;
}
}
return achou;
}
int chuteserrados()
{
int erros = 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) erros++;
}
return erros;
}
void desenhaforca()
{
int erros = chuteserrados();
printf(" _______ \n");
printf(" |/ | \n");
printf(" | %c%c%c \n", (erros>=1? '(' : ' '), (erros>=1? '_' : ' '), (erros>=1? ')' : ' '));
printf(" | %c%c%c \n", (erros>=3? '\\' : ' '), (erros>=2? '|' : ' '), (erros>=3? '/' : ' '));
printf(" | %c \n", (erros>=2? '|' : ' '));
printf(" | %c %c \n", (erros>=4? '/' : ' '), (erros>=4? '\\' : ' '));
printf(" | \n");
printf("_|___ \n");
printf("\n\n");
for (int i = 0; i < strlen(palavrasecreta); i++)
{
int achou = jachutou(palavrasecreta[i]);
if(achou)
{
printf("%c", palavrasecreta[i]);
}
else
{
printf("_ ");
}
}
printf("\n");
}
void chuta()
{
char chute;
scanf(" %c", &chute);
chutes[chutesdados] = chute;
chutesdados++;
}
int enforcou()
{
return chuteserrados() >= 5;
}
int acertou()
{
for(int i = 0; i < strlen(palavrasecreta); i++)
{
if(!jachutou(palavrasecreta[i]))
{
return 0;
}
}
return 1;
}
void adicionapalavra()
{
char quer;
printf("\nVoce deseja adicionar uma nova palavra no jogo? (S/N)");
scanf(" %c", &quer);
if(quer == 'S')
{
char novapalavra[TAMANHO_PALAVRA];
printf("Qual a nova palavra? ");
scanf("%s", &novapalavra);
FILE* f;
f = fopen("palavras.txt", "r+");
if(f == 0)
{
printf("Desculpe, banco de dados indisponivel!\n\n");
exit(1);
}
int qtd;
fscanf(f, "%d", &qtd);
qtd++;
fseek(f, 0, SEEK_SET);
fprintf(f, "%d", qtd);
fseek(f, 0, SEEK_END);
fprintf(f, "\n%s", novapalavra);
fclose(f);
}
}
int main()