luiscastro Posted April 22, 2009 at 02:12 PM Report #258267 Posted April 22, 2009 at 02:12 PM 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.
bruno1234 Posted April 22, 2009 at 07:29 PM Report #258364 Posted April 22, 2009 at 07:29 PM 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
luiscastro Posted April 23, 2009 at 09:21 AM Author Report #258487 Posted April 23, 2009 at 09:21 AM 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]
bruno1234 Posted April 23, 2009 at 03:13 PM Report #258612 Posted April 23, 2009 at 03:13 PM 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
luiscastro Posted April 24, 2009 at 09:33 AM Author Report #258778 Posted April 24, 2009 at 09:33 AM 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...
bruno1234 Posted April 24, 2009 at 03:37 PM Report #258844 Posted April 24, 2009 at 03:37 PM 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now