Code:
int jogo1Gp1(FILE *f, int res1)
{
struct perg p;
int resposta;
system("cls");
printf ("\n*=============================================================================*\n");
printf ("| >>>>Escolha Multipla<<<< |\n");
printf ("*=============================================================================*\n");
fseek(f, res1 * sizeof p, SEEK_SET);
fread(&p, sizeof p, 1, f);
printf("\nPergunta : %s", p.ques);
printf("\nOpcao 1 : %s",p.op1);
printf("\nOpcao 2 : %s",p.op2);
printf("\nOpcao 3 : %s",p.op3);
printf("\nOpcao 4 : %s",p.op4);
printf("\nResposta correta?\n");
scanf("%d", &resposta);
getchar();
if(resposta==p.res)
return 1;
else
return 0;
}
int jogo1Gp2(FILE *f, int res1)
{
struct gp2 p;
char buf[10];
system("cls");
printf ("\n*=============================================================================*\n");
printf ("| >>>>Facto ou Ficcao<<<< |\n");
printf ("*=============================================================================*\n");
fseek(f, res1 * sizeof p, SEEK_SET);
fread(&p, sizeof p, 1, f);
printf("\nPergunta : %s",p.ques);
printf("\nResposta correta? (facto ou ficcao)\n");
fgets(buf,9,stdin);
if(strcmp(buf,p.res)==0)
return 1;
else
return 0;
}
int jogo1Gp3()
{
int num[TAM];
int vet[TAM], i;
int n=4;
system("cls");
printf ("\n*=============================================================================*\n");
printf ("| >>>>Ordenacao rapida<<<< |\n");
printf ("*=============================================================================*\n");
printf (" \n");
LeVetor(num, n);
system("cls");
printf ("\n*=============================================================================*\n");
printf ("| >>>>Numeros Selecionados<<<< |\n");
printf ("*=============================================================================*\n");
printf (" \n");
for(i=0; i<n;i++)
{
printf("%d\n",num[i]);
}
bubbleSort(num,n);
printf ("\n*=============================================================================*\n");
printf ("| >>>>Vetor ordenado<<<< |\n");
printf ("*=============================================================================*\n");
printf (" \n");
for(i=0; i<n;i++)
{
//printf("%d\n",num[i]);
}
for(i=0;i<n; i++)
{
printf("\nOrdene os 4 primeiros numeros de forma ascendente\n");
scanf("%d",&vet[i]);
}
for(i=0;i<n; i++)
{
//printf("\n%d %d \n",num[i], vet[i]);
if(num[i]==vet[i])
return 1;
else
return 0;
}
return 0;
}
int jogo1Gp4(FILE *f, int res1)
{
struct perg p;
int resposta;
system("cls");
printf ("\n*=============================================================================*\n");
printf ("| >>>>Escolha Multipla<<<< |\n");
printf ("*=============================================================================*\n");
fseek(f, res1 * sizeof p, SEEK_SET);
fread(&p, sizeof p, 1, f);
printf("\nPergunta : %s", p.ques);
printf("\nOpcao 1 : %s",p.op1);
printf("\nOpcao 2 : %s",p.op2);
printf("\nOpcao 3 : %s",p.op3);
printf("\nResposta correta?\n");
scanf("%d", &resposta);
getchar();
if(resposta==p.res)
return 1;
else
return 0;
}
int gp1_Ques(struct perg *p, char *usr1)
{
FILE *f; //apontador para ficheiro
f=fopen("gp1.dat", "r"); //abertura do ficheiro
int reg=0,reg1; //Variaveis contadoras de perguntas e random
int random; // Variável de random
int result=0; //Variáveis resultados
int total_perg=0, certas=0, erradas=0;
float t_certas;
float t_erradas;
rewind(f); //retorna a posição corrente do ficheiro para o início
srand(time(NULL)); //função random
system("cls");
fseek(f, 0, SEEK_END);
reg=ftell(f) /sizeof *p;
fseek(f, 0 , SEEK_SET);
if (reg<=0) //condição que verifica se existem registos
{
printf ("Sem registos \n");
printf ("\n Necessario ter registos para jogar...\n");
return 0;
}
else
{
printf ("\n*=============================================================================*\n");
printf ("| >>>>Visualizao de perguntas<<<< |\n");
printf ("*=============================================================================*\n");
printf (" \n");
printf ("\n Bemvindo %s \n",usr1);
printf ("\n TOTAL de perguntas: %d \n",reg); //conta as perguntas
printf ("\n O seu score maximo sera: %d\n",reg/10); //pontuação máxima do jogo
printf (" \n");
printf ("*=============================================================================*\n");
Sleep(2000);
random=rand()%reg; //função random
reg1 = random; //atribui a variavel reg o valor de random
if ( jogo1Gp1(f,reg1) )
{
printf("\nAcertou na resposta...\n");
result++;
total_perg++;
certas++;
random=rand()%reg;//função random
printf("Atencao a proxima pergunta...\n");
Sleep(1000);
if ( jogo1Gp1(f,random))
{
printf("\nAcertou novamente na resposta...\n");
result++;
total_perg++;
certas++;
}
else
{
printf("Errou nesta questao...\n");
erradas++;
total_perg++;
}
}
else
{
printf("Errou nesta questao...\n");
printf("\nTem ainda mais uma tentativa...\n");
Sleep(1500);
erradas++;
total_perg++;
random=rand()%reg; //função random
reg1 = random; //atribui a variavel reg o valor de random
if ( jogo1Gp1(f,reg1) )
{
printf("\nAcertou na resposta...\n");
result++;
total_perg++;
certas++;
}
else
{
printf("Errou novamente...ai esta cultura geral!!! \n");
erradas++;
total_perg++;
printf("\nNao consegue qualificacao para a proxima fase....tente de novo\n");
jogo();
}
}
}
if (result>=1)
{
if ((certas > 0) && (erradas==0))
{
t_certas=total_perg*100 /certas;
}
else
{
t_certas=certas*100 /total_perg;
t_erradas=erradas*100 / total_perg;
}
system("cls");
printf ("\n*=============================================================================*\n");
printf ("| >>>>Resultado desta fase 1<<<< |\n");
printf ("*=============================================================================*\n");
printf (" \n");
printf("\nTeve um total de %d pontos\n", result);
printf("Respondeu a %d perguntas \n", total_perg);
printf("\nAcertou %d perguntas\n", certas);
printf("\nErrou %d perguntas\n", erradas);
printf("\nPercentagem certas: %.2f %% \n", t_certas);
printf("\nPercentagem erradas: %.2f %%\n", t_erradas);
printf("\n Vai passar para a fase 2...aguarde \n");
printf ("*=============================================================================*\n");
printf (" \n");
Sleep(5000);
gp2_Ques(usr1, &result, &total_perg, &certas, &erradas);
}
else
{
printf("Nao atingiu o minimo para seguir....vai voltar ao menu anterior");
Sleep(2000);
system("cls");
jogo();
}
fclose(f);
return 0;
}
int gp2_Ques(struct gp2 *p, char *usr1, int *result,int *total_perg,int *certas,int *erradas)
{
FILE *f; //apontador para ficheiro
f=fopen("gp2.dat", "rb"); //abertura do ficheiro
int reg=0,reg1; //Variaveis contadoras de perguntas e random
int random; // Variável de random
rewind(f); //retorna a posição corrente do ficheiro para o início
srand(time(NULL)); //função random
system("cls");
fseek(f, 0, SEEK_END);
reg=ftell(f) /sizeof *p;
fseek(f, 0 , SEEK_SET);
if (reg<=0) //condição que verifica se existem registos
{
printf ("Sem registos \n");
printf ("\n Necessario ter registos para jogar...\n");
return 0;
}
else
{
printf ("\n*=============================================================================*\n");
printf ("| >>>>Facto ou Ficcao<<<< |\n");
printf ("*=============================================================================*\n");
printf (" \n");
printf ("\n Boa sorte neste fase %s \n",usr1);
printf ("\n Traz da outra fase: %d pontos \n",*result); //conta as perguntas
printf ("\n TOTAL de perguntas: %d \n",reg); //conta as perguntas
printf ("\n O seu score maximo sera: 3 \n"); //pontuação máxima do jogo
printf (" \n");
printf ("*=============================================================================*\n");
Sleep(3000);
random=rand()%reg; //função random
reg1 = random; //atribui a variavel reg o valor de random
if ( jogo1Gp2(f,reg1) )
{
printf("\nAcertou na resposta...\n");
(*result)++;//incrementa a variavel result
(*total_perg)++;
(*certas)++;
random=rand()%reg;//função random
printf("Atencao a proxima pergunta...\n");
Sleep(2000);
if ( jogo1Gp2(f,random))
{
printf("\nAcertou novamente na resposta...\n");
(*result)*=2; //incrementa a variavel result
(*total_perg)++;
(*certas)++;
}
else
{
printf("Resposta errada....foi eliminado :(");
(*total_perg)++;
(*erradas)++;
Sleep(2000);
system("cls");
jogo();
}
}
else
{
printf("\nResposta errada....foi eliminado :(");
(*total_perg)++;
(*erradas)++;
Sleep(2000);
system("cls");
jogo();
}
}
if (*result>=6)
{
system("cls");
printf ("\n*=============================================================================*\n");
printf ("| >>>>Resultado desta fase 2<<<< |\n");
printf ("*=============================================================================*\n");
printf (" \n");
printf("\nTem um total de %d pontos\n", *result);
printf("\nTem um total de %d perguntas\n", *total_perg);
printf("\nTem %d de respostas certas.\n", *certas);
printf("\nTem %d de respostas erradas.\n", *erradas);
printf("\n Vai passar para a fase 3...aguarde \n");
printf ("*=============================================================================*\n");
printf (" \n");
Sleep(5000);
gp3_Ques(usr1, result, total_perg, certas, erradas);
}
else
{
printf("Nao atingiu o minimo para seguir....vai voltar ao menu anterior");
printf("Tem um total de %d perguntas", *total_perg);
printf("Tem %d respostas certas.", *certas);
printf("Tem %d respostas erradas.", *erradas);
Sleep(5000);
system("cls");
jogo();
}
fclose(f);
return 0;
}
int gp3_Ques(char *usr1, int *result,int *total_perg,int *certas,int *erradas)
{
system("cls");
printf ("\n*=============================================================================*\n");
printf ("| >>>>Ordenacao numeral<<<< |\n");
printf ("*=============================================================================*\n");
printf (" \n");
printf ("\n Esta no bom caminho %s \n",usr1);
printf ("\n Traz da outra fase: %d pontos \n", *result); //conta as perguntas
printf ("\n O seu score maximo sera: 2 \n"); //pontuação máxima do jogo
printf (" \n");
printf ("*=============================================================================*\n");
Sleep(3000);
if ( jogo1Gp3() )
{
printf("\nAcertou na resposta...\n");
(*result)++;//incrementa a variavel result
(*total_perg)++;
(*certas)++;
printf("Atencao a proxima pergunta...\n");
Sleep(2000);
if ( jogo1Gp3())
{
printf("\nAcertou novamente na resposta...\n");
(*result)++;//incrementa a variavel result
(*total_perg)++;
(*certas)++;
}
else
{
printf("Resposta errada.... :(");
(*total_perg)++;
(*erradas)++;
Sleep(2000);
system("cls");
}
}
else
{
printf("\nResposta errada....foi eliminado :(");
(*total_perg)++;
(*erradas)++;
Sleep(2000);
system("cls");
jogo();
}
if (*result>=7)
{
printf ("\n*=============================================================================*\n");
printf ("| >>>>Resultado desta fase 3<<<< |\n");
printf ("*=============================================================================*\n");
printf (" \n");
printf("\nTem um total de %d pontos\n", *result);
printf("\nTem um total de %d perguntas\n", *total_perg);
printf("\nTem %d de respostas certas.\n", *certas);
printf("\nTem %d de respostas erradas.\n", *erradas);
printf("\n Vai passar para a fase 4...aguarde \n");
printf ("*=============================================================================*\n");
Sleep(5000);
gp4_Ques(usr1, result, total_perg, certas, erradas);
}
else
{
printf("Nao atingiu o minimo para seguir....vai voltar ao menu anterior");
Sleep(2000);
system("cls");
jogo();
}
return 0;
}
int gp4_Ques(struct gp2 *p, char *usr1, int *result,int *total_perg,int *certas,int *erradas)
{
FILE *f; //apontador para ficheiro
f=fopen("gp4.dat", "rb"); //abertura do ficheiro
int reg=0,reg1; //Variaveis contadoras de perguntas e random
int random; // Variável de random
rewind(f); //retorna a posição corrente do ficheiro para o início
srand(time(NULL)); //função random
system("cls");
fseek(f, 0, SEEK_END);
reg=ftell(f) /sizeof *p;
fseek(f, 0 , SEEK_SET);
if (reg<=0) //condição que verifica se existem registos
{
printf ("Sem registos \n");
printf ("\n Necessario ter registos para jogar...\n");
return 0;
}
else
{
printf ("\n*=============================================================================*\n");
printf ("| >>>>Fuga aos pontos<<<< |\n");
printf ("*=============================================================================*\n");
printf (" \n");
printf ("\n Boa sorte neste fase %s \n",usr1);
printf ("\n Traz da outra fase: %d pontos \n",*result); //conta as perguntas
printf ("\n TOTAL de perguntas: %d \n",reg); //conta as perguntas
printf ("\n O seu score maximo sera: 3 \n"); //pontuação máxima do jogo
printf (" \n");
printf ("*=============================================================================*\n");
Sleep(3000);
random=rand()%reg; //função random
reg1 = random; //atribui a variavel reg o valor de random
if ( jogo1Gp4(f,reg1) )
{
printf("\nAcertou na resposta...\n");
(*result)++;//incrementa a variavel result
(*total_perg)++;
(*certas)++;
random=rand()%reg;//função random
printf("Atencao a proxima pergunta...\n");
Sleep(2000);
if ( jogo1Gp4(f,random))
{
printf("\nAcertou novamente na resposta...\n");
(*result)*=2; //incrementa a variavel result
(*total_perg)++;
(*certas)++;
}
else
{
printf("Resposta errada....foi eliminado :(");
(*total_perg)++;
(*erradas)++;
Sleep(2000);
system("cls");
jogo();
}
}
else
{
printf("\nResposta errada....foi eliminado :(");
(*total_perg)++;
(*erradas)++;
Sleep(2000);
system("cls");
jogo();
}
}
if (*result>=6)
{
system("cls");
printf ("\n*=============================================================================*\n");
printf ("| >>>>Resultado desta fase 2<<<< |\n");
printf ("*=============================================================================*\n");
printf (" \n");
printf("\nTem um total de %d pontos\n", *result);
printf("\nTem um total de %d perguntas\n", *total_perg);
printf("\nTem %d de respostas certas.\n", *certas);
printf("\nTem %d de respostas erradas.\n", *erradas);
printf("\n Vai passar para a fase 3...aguarde \n");
printf ("*=============================================================================*\n");
printf (" \n");
Sleep(5000);
gp3_Ques(usr1, result, total_perg, certas, erradas);
}
else
{
printf("Nao atingiu o minimo para seguir....vai voltar ao menu anterior");
printf("Tem um total de %d perguntas", *total_perg);
printf("Tem %d respostas certas.", *certas);
printf("Tem %d respostas erradas.", *erradas);
Sleep(5000);
system("cls");
jogo();
}
fclose(f);
return 0;
}
I'm sure there is something wrong in there