1
resposta

MEU JOGO

#include <stdio.h> #include <string.h> #include <time.h> #include <stdlib.h> #include "forca.h"

// VARIAVEIS GLOBAIS

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;
scanf(" %c", &chute);

chutes[chutesdados] = chute;

chutesdados++;

}

void desenhaforca() {

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


    int achou = jachutou (palavrasecreta[i] );

    if(achou)
    {

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

        printf("_ ");
    }

}
printf("\n");

} void adicionapalavra(){

char quer;

printf("Voce deseja adIcionar uma nova palavra no jogo (S/N)?");
scanf(" %c", &quer);

if(quer =='S')
{

    char novapalavra[20];

    printf("Digite a nova palavra, em letras maiúscula: ");
    scanf("%s", novapalavra);

    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 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);

}

}

void escolhepalavra() { FILE* f;

f = fopen("palavras.txt", "r");

if(f == 0)
{
    printf("Desculpe, banco de dados nao disponivel\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 acertou(){

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

  if(!jachutou(palavrasecreta[i])){


        return 0;

    }
}
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++;
}
return erros >= 5;

}

int jachutou(char letra) {

int achou =0 ;

for(int j  = 0;  j < chutesdados;  j++){

    if (chutes[j] == letra){

        achou = 1;

        break;
    }
}

return achou;

}

int main(){

escolhepalavra();

abertura( );

do
{

    desenhaforca();

    chuta();
}

while(!acertou() && !enforcou());
adicionapalavra();

}

1 resposta

Olá!

Obrigado por compartilhar seu projeto. Seu jogo ficou bem interessante e parece estar funcionando corretamente.

Bons estudos!