Claro, aqui está:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include "forca.h"
void abertura();
void chuta();
void desenhaforca();
void escolhePalavra();
int acertou();
int enforcou();
int jachutou(char letra);
void adicionaPalavra();
char palavraSecreta[20];
char chutes[26];
int chutesdados = 0;
void abertura(){
printf("********************************\n");
printf("*********Jogo de forca**********\n");
printf("********************************\n\n");
}
void chuta(){
char chute;
printf("Chute uma letra?\n");
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("Numero de chutesdados: %d\n", chutesdados);
for( int i = 0; i < strlen(palavraSecreta); i++){
if(jachutou(palavraSecreta[i])) {
printf("%c ", palavraSecreta[i]);
} else {
printf("_ ");
}
}
printf("\n");
}
void adicionaPalavra(){
char opcao;
printf("\nAdicionar nova palavra ao jogo?S/N\n");
scanf(" %c", &opcao);
if(opcao == 'S'){
char palavraNova[20];
printf("Qual a palavra nova?\n");
scanf("%s", palavraNova);
FILE * f;
fopen("palavras.txt", "r+");
if(f == 0){
printf("ERRO\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", palavraNova);
fclose(f);
}
}
void escolhePalavra(){
FILE * f;
f = fopen("palavras.txt", "r");
if(f==0){
printf("ERRO\n");
exit(1);
}
int qtdpalavras;
fscanf(f, "%d", &qtdpalavras);
srand(time(0));
int randomico = rand() % qtdpalavras;
for(int i = 0; i <= randomico; i++){
fscanf(f, "%s", palavraSecreta);
}
fclose(f);
}
int acertou(){
for(int i = 0; i < strlen(palavraSecreta); i++){
if(!jachutou(palavraSecreta[i])){
return 0;
}
}
printf("\nVoce acertou\n");
return 1;
}
int enforcou(){
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++;
}
if(erros >= 5){
printf("\nEnforcou\nVoce Perdeu");
}
return erros >= 5;
}
int main(){
escolhePalavra();
abertura();
do {
desenhaforca();
chuta();
} while(!acertou() && !enforcou());
adicionaPalavra();
return 0;
}