1
resposta

Meu jogo ate aki

include <stdio.h>

include <string.h>

include "forca.h"

include <stdlib.h>

include <time.h>

// variaveis globais

char palavrasecreta [20]; int chutesdados = 0; char chutes [26];

//-------------------------------------------------------------------

void abertura(){ printf("/***/\n"); printf(" /JOGO DE FORCA/\n"); printf("/***/\n"); }

//-------------------------------------------------------------------

int jachutou(char letra){ int achou = 0; for (int j = 0; j< chutesdados; j++){ if ( chutes[j] == letra){ achou = 1; break;

}else { achou = 0; }

} return achou; }

//------------------------------------------------------------------

void desenhaforca(){ for (int i = 0; i < strlen(palavrasecreta); i++){ int achou = 0;

achou = jachutou(palavrasecreta[i]);

if (achou){ printf("%c ",palavrasecreta[i]); }else{ printf("_ "); } }

printf("\n"); }

//--------------------------------------------------------------------

void chuta (){ scanf(" %c", &chutes[chutesdados]); chutesdados++; }

//------------------------------------------------------------------

void escolhepalavrasecreta(){

FILE* bancodedados;

bancodedados = fopen("bancodepalavras.txt","r");

if (!bancodedados){ printf("Desculpe! banco de dados não disponivel\n\n"); exit(1); }

int qtdpalavras; fscanf(bancodedados,"%d", &qtdpalavras);

srand(time(0)); int randomico = rand() % qtdpalavras;

for (int i = 0; i<= randomico; i++){ fscanf(bancodedados,"%s", palavrasecreta);

}

fclose(bancodedados);

}

//------------------------------------------------------------------

int enforcou(){ int errou = 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){ errou++; } } return errou>=5; }

//-------------------------------------------------------------------

int acertou(){

for( int i = 0; i < strlen(palavrasecreta); i++){

if(!jachutou(palavrasecreta[i])){
return 0;
}
}

return 1;

}

//------------------------------------------------------------------------ void adicionapalavra(){ char escolha;

printf("Voce deseja adicionar uma palavra nova?(S/N)\n"); scanf(" %c", &escolha);

if (escolha == 'S') { char novapalavra[20]; printf("Qual a sua nova palavara?"); scanf("%s", novapalavra);

FILE* bancodedados;
bancodedados = fopen("bancodepalavras.txt","r+");

if (!bancodedados){
printf("Desculpe! banco de dados não disponivel\n\n");
exit(1);

}

int qtdpalavras;

fscanf(bancodedados,"%d",&qtdpalavras);
qtdpalavras++;
 fseek(bancodedados, 0, SEEK_SET);
 fprintf(bancodedados,"%d",qtdpalavras);
 fseek(bancodedados, 0, SEEK_END);

fprintf(bancodedados, "\n %s",novapalavra);



fclose(bancodedados);

} }

//-------------------------------------------------------------------------

int main(){

abertura(); escolhepalavrasecreta(); do { desenhaforca(); chuta(); }while (!acertou() && !enforcou()); adicionapalavra();

}

1 resposta

Olá, Cleiton! Tudo bem?

Isso mesmo! Parabéns por solucionar esse desafio.

Continue praticando e ótimos estudos.

Abraços