Jump to content

Recommended Posts

Posted

Tenho de fazer o jogo do BUZZ para programação mas tenho umas duvidas

É assim:

- se um jogador jogar 2 vezes ele não pode receber as mesmas perguntas k recebeu antes, como resolvo isto?

- como posso validar as respostas k o utilizador da? ele escolhe o nr duma resposta e eu tenho de a validar...eu fazia isto com if´s mas o problema e k as perguntas não vem sempre na mesma ordem sempre k o utilizador joga, e portanto não ia bater certo

tipo, o utilizador encontra categorias de perguntas e escolhe uma...dentro dela vem as perguntas, dá para por uma pergunta de cada vez?

utilizo ficheiros de texto e lá pus todas as perguntas e respostas.

Posted

A resposta ás tuas perguntas depende mto de como vais organizar o teu código.

Podes começar por pensar nessa estrutura.

Quanto ás tuas duvidas em si:

Para não repetir perguntas, guardas uma lista com os IDs das perguntas q recebeu.

Para validares a resposta, tens q saber a resposta do utilizador e comparar com a resposta previamente guardada no teu modelo de dados.

Sim, podes por uma pergunta de cada vez, esperas q ele responda à primeira, e só depois metes a próxima.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Posted

sim mas da teoria a pratica é k é mais complicado..vou por o codigo k ja tenho feito....

so komecei a trabalhar na categoria de desporto. tenho um ficheiro chamado desporto k contém o seguinte:

Em que ano foi fundado o Sport Lisboa e Benfica?

1 - 1234

2 - 1235

3 - 1236

4 - 1237

Qual o simbolo do Sport Lisboa e Benfica?

1 - Leao

2 - Dragao

3 - Machado

4 - Aguia

Quem foi campeao no mundial da Argentina?

1 - Portugal

2 - China

3 - Argentina

4 - Brasil

o código é:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int total=0;
void cabecalho()
{
     printf("\n\n\n\t\t\t*****  BUZZ GAME  *****\n\n\n");
}

void desporto()
{
     printf("Cada resposta deste grupo tem a cotacao de 1 valor\n\nEscolha o numero da resposta que considera correta a cada pergunta\n\n");
     FILE *fp;
     int ch;
     char desporto[100];
     fp = fopen ("desporto.txt","r");
     if (fp==NULL)
     {
          printf("erro",desporto);
     }
     ch=fgetc(fp);
     if(fseek(fp,0,SEEK_SET))
     {
          puts("ERRO");
     }
     else
     {
         int resp;
         char desporto[40];
         fread(&desporto[0],sizeof(char),90,fp);
         puts("1 pergunta e:\n");
         puts(desporto);
         scanf("%d",&resp);
         total=total+1;
         char fflush(FILE *fp); 
         fread(&desporto[0],sizeof(char),90,fp);
         puts("2 pergunta e:");
         puts(desporto);
         char fflush(FILE *fp);
         scanf("%d",&resp);
         total=total+1;
         fread(&desporto[0],sizeof(char),97,fp);
         puts("3 pergunta e:\n");
         puts(desporto);
         char fflush(FILE *fp);
         scanf("%d",&resp);
         total=total+1;
     }
     fclose(fp);
}

void cultura()
{
     printf("Cada resposta deste grupo tem a cotacao de 3 valores\n\nEscolha o numero da resposta que considera correta a cada pergunta\n\n");
     FILE *fp;
     int ch;
     char cultura[100];
     fp = fopen ("cultura.txt","r");
     if (fp==NULL)
     {
          printf("erro",cultura);
     }
     ch=fgetc(fp);
     while(ch!=EOF)
     {
          printf("%c",ch);
          ch=fgetc(fp);
     }
     fclose(fp);
}

void politica()
{
     printf("Cada resposta deste grupo tem a cotacao de 4 valores\n\nEscolha o numero da resposta que considera correta a cada pergunta\n\n");
     FILE *fp;
     int ch;
     char politica[100];
     fp = fopen ("politica.txt","r");
     if (fp==NULL)
     {
          printf("erro",politica);
     }
     ch=fgetc(fp);
     while(ch!=EOF)
     {
          printf("%c",ch);
          ch=fgetc(fp);
     }
     fclose(fp);
}

void cinema()
{
      printf("Cada resposta deste grupo tem a cotacao de 2 valores\n\nEscolha o numero da resposta, que considera correta a cada pergunta\n\n");
      FILE *fp;
     int ch;
     char cinema[100];
     fp = fopen ("cinema.txt","r");
     if (fp==NULL)
     {
          printf("erro",cinema);
     }
     ch=fgetc(fp);
     while(ch!=EOF)
     {
          printf("%c",ch);
          ch=fgetc(fp);
     }
     fclose(fp);
}

void jogar()
{
     int opcao;
     printf("\n\n\nEscolha um tema !\n\n\n");
     printf("1 -> Desporto\n\n2 -> Cultura\n\n3 -> Politica\n\n4 -> Cinema\n\n");
     scanf("%d",&opcao);
     switch(opcao)
     {
          case 1:
               system("cls");
               desporto();
               break;
          case 2:
               system("cls");
               cultura();
               break;
          case 3:
               system("cls");
               politica();
               break;
          case 4:
               system("cls");
               cinema();
               break;
          
          default:
               printf("\n\a\aOPCAO INVALIDA..... ESCOLHA OUTRA\n");
     }
     while(opcao!=4);
}

void AdmJogo()
{
}
void inicio()
{
     int opcao,password=1,passe;
     printf("\n\n\t1 - ADMISTRADOR\n\n\t2 - JOGADOR\n\n");
     scanf("%d",&opcao);
     switch(opcao)
     {
          case 1:
               printf("\nIntroduza a password ");
               scanf("%d",&passe);
               if (passe==password) //não consigo entrar nesta condição
               AdmJogo();
               else
               printf("\nPassword incorreta\n");
               inicio();
               break;
          case 2:
               jogar();
          default:
               printf("\n\a\aOPCAO INVALIDA..... ESCOLHA OUTRA\n");
     }
     while(opcao!=2);
}

main()
{
      cabecalho();
      inicio();
      system("pause");
}[code]
Posted

O teu ficheiro com as perguntas nesse formato não te ajuda em nada. Podes adoptar um formato mais simples para a pesquisa:

Por exemplo:

ID_Pergunta|Pergunta|Opção1|Opção2|Opção3|Opção4|RespostaCorrecta

Na Prática:

2|Qual o simbolo do Sport Lisboa e Benfica?|Leao|Dragao|Machado|Galinha|4

Assim tinhas uma linha por pergunta, um id q te permite guardar as perguntas q já saíram, pergunta, opções de resposta e resposta, depois é só leres uma linha aleatóriamente e divideres a frase por '|', para isso existe a função strtok da standard library do C.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Posted

Eu como tou a trabalhar n tenho tempo p te fazer os exemplos.

Mas para escolheres aleatoriamente uma linha, podes carregar as perguntas todas para uma lista ou um array de uma estrutura, e depois com a função Random do C escolhes um numero aleatorio.

Para guardares o id das perguntas q já sairam, guardas tb uma lista ou um array de Ids

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.