• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

luiscastro

jogo do buzz

6 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim...bem pensado...mas se puderes põe o exemplo do k dizes para desporto...nao percebi a parte de ler aleatoriamente e guardar o ID da pergunta k ja saiu...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora