Advertisement
Drowze

Jogo: Perguntas e respostas

Jul 10th, 2014
484
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.29 KB | None | 0 0
  1. /*
  2. Projeto: Jogo de perguntas e respostas (utilizável em provas ou trivias, por exemplo)
  3. Versão: 1.0
  4.  
  5. Changelog:
  6.     1.0:
  7.     *Input do jogador
  8.  
  9.     Segunda versão de rascunho:
  10.     *Respostas que são embaralhadas junto com suas alternativas correspondentes
  11.  
  12. Elementos do jogo e seu funcionamento:
  13. *Banco de perguntas (e de tamanho ajustável) (com matriz para respostas)
  14. *Numero de perguntas a serem colocadas em jogo (com matriz para respostas)
  15. *Perguntas aleatórias do banco de perguntas são copiadas para aparecerem em jogo (junto com suas respostas)
  16. *As perguntas em jogo tem suas alternativas embaralhadas (assim como suas respostas)
  17. *As perguntas aparecem na tela, uma a uma, pedindo respostas e acumulam pontos em seu acerto
  18.  
  19. */
  20.  
  21.  
  22. #include <stdio.h>
  23. #include <stdlib.h>
  24. #include <string.h>
  25. #include <time.h>
  26.  
  27. #define NUM_PERGUNTAS_TOTAL 10
  28. #define NUM_PERGUNTAS 5
  29.  
  30. void main(){
  31.     srand(time(NULL));
  32.     int i,j;
  33.     int random;
  34.  
  35.     /* 5 perguntas entram em jogo,
  36.     sendo: 1 linha para pergunta e quatro para alternativas,
  37.     com cada linha tendo 30 caracteres */
  38.     char trivia[NUM_PERGUNTAS][5][100];
  39.  
  40.     /* Banco de perguntas */
  41.     char banco[NUM_PERGUNTAS_TOTAL][5][100]=
  42.     {
  43.         "Qual empresa criou a franquia Final Fantasy?",
  44.         "SquareEnix",
  45.         "Capcom",
  46.         "EA Games",
  47.         "SquareSoft", //A principio, a resposta certa é sempre a quarta alternativa
  48.  
  49.         "Waluigi, da serie Mario, possui roupa de que cor predominante?",
  50.         "Amarela",
  51.         "Verde",
  52.         "Rosa",
  53.         "Roxa", //No entanto, as respostas serão embaralhadas posteriormente
  54.  
  55.         "Qual o jogo online atualmente (2014) mais jogado no mundo?",
  56.         "Counter Strike: Global Offensive",
  57.         "Fifa 14",
  58.         "Dota 2",
  59.         "League Of Legends",
  60.        
  61.         "Quantos pokemons tem a segunda geracao de Pokemon?",
  62.         "51",
  63.         "151",
  64.         "718",
  65.         "251",
  66.  
  67.         "Pokemon X e Y roda em qual console?",
  68.         "Nintendo DS",
  69.         "Nintendo DS Lite",
  70.         "Nintendo DSi",
  71.         "Nintendo 3DS",
  72.        
  73.         "Qual destes jogos foi feito pela Blizzard?",
  74.         "Age of Empires",
  75.         "Golden Axe",
  76.         "League of Legends",
  77.         "Rock N Roll Racing",
  78.  
  79.         "O porco espinho Sonic apareceu primeiro em qual console?",
  80.         "Super Nintendo",
  81.         "Nintendo (8bits)",
  82.         "Atari 2600",
  83.         "Mega Drive",
  84.        
  85.         "Qual Pokemon eh conhecido como um clone?",
  86.         "Mew",
  87.         "Jirachi",
  88.         "Celebi",
  89.         "Mewtwo",
  90.  
  91.         "Qual o nome do protagonista da serie Half-Life?",
  92.         "Morgan Freeman",
  93.         "Master Chief",
  94.         "Duke Nukem",
  95.         "Gordon Freeman",
  96.        
  97.         "Qual destes personagens eh famoso por ser brasileiro?",
  98.         "Link, da serie Zelda",
  99.         "Dante, da serie Devil May Cry",
  100.         "Snake, da serie Metal Gear",
  101.         "Blanka, da serie Street Fighter",
  102.     };
  103.  
  104.     /* Banco de respostas */
  105.     /* 0:resposta errada
  106.        1: resposta certa
  107.        99: pergunta */
  108.     int respostas_banco[NUM_PERGUNTAS_TOTAL][5] = {
  109.     99,0,0,0,1,
  110.     99,0,0,0,1,
  111.     99,0,0,0,1,
  112.     99,0,0,0,1,
  113.     99,0,0,0,1,
  114.     99,0,0,0,1,
  115.     99,0,0,0,1,
  116.     99,0,0,0,1,
  117.     99,0,0,0,1,
  118.     99,0,0,0,1
  119.     };
  120.  
  121.     int respostas_trivia[NUM_PERGUNTAS][5];
  122.  
  123. //---------------------------------------// Fim dos "bancos de dados"
  124.  
  125.  
  126.     /* Algoritmo copiar perguntas aleatórias do banco de perguntas */
  127.     int booleano = 0;
  128.  
  129.     for(i=0; i<NUM_PERGUNTAS; i++){
  130.         booleano = 0;
  131.         random = rand()%NUM_PERGUNTAS_TOTAL;
  132.  
  133.         //checar se a pergunta ja nao foi sorteada antes
  134.         if(i>0){
  135.             for(int count=0; count<NUM_PERGUNTAS; count++){
  136.                 if(strcmp(trivia[count][0], banco[random][0]) == 0){
  137.                     booleano = 1;
  138.                     i--;
  139.                 }
  140.             }
  141.         }
  142.        
  143.         //se ela nao foi, copie!
  144.         if(booleano == 0){
  145.             for(int count=0; count<5; count++)
  146.                 respostas_trivia[i][count] = respostas_banco[random][count]; //copiar a resposta da pergunta
  147.             for(j=0;j<5;j++)
  148.                 strcpy(trivia[i][j], banco[random][j]); //copiar a pergunta e suas alternativas
  149.         }
  150.     }
  151.    
  152.     /* Algoritmo para embaralhar as alternativas */
  153.     char aux[100];
  154.  
  155.     for(i=0; i<NUM_PERGUNTAS; i++){
  156.         for(j=1; j<5; j++){
  157.             random = (rand()%4)+1;
  158.  
  159.             strcpy(aux, trivia[i][j]);
  160.             strcpy(trivia[i][j], trivia[i][random]);
  161.             strcpy(trivia[i][random], aux);
  162.            
  163.             //Para a resposta acompanhar a alternativa
  164.             aux[0] = respostas_trivia[i][random];
  165.             respostas_trivia[i][random] = respostas_trivia[i][j];
  166.             respostas_trivia[i][j] = aux[0];
  167.         }
  168.     }
  169.  
  170. //---------------------------------------// Fim da preparação do jogo
  171.  
  172.  
  173.     /* Algoritmo final do jogo */
  174.     int pontos = 0;
  175.     int palpite;
  176.  
  177.     for(i = 0; i<NUM_PERGUNTAS; i++){
  178.         system("cls");
  179.         fflush(stdin);
  180.        
  181.         printf("***PERGUNTAS E RESPOSTAS EM C! Facilmente editavel no codigo\n");
  182.         printf("***Numero de perguntas: %d\n",NUM_PERGUNTAS);
  183.         printf("***Programa por: Rafael Gibim\n\n");
  184.  
  185.         for(j=0;j<5;j++){
  186.             if(j!=0) printf("%d- ",j);
  187.             printf("%s\n",trivia[i][j]);
  188.         }
  189.  
  190.         printf("Digite a resposta certa: ");
  191.         scanf("%d",&palpite);
  192.  
  193.         if(respostas_trivia[i][palpite] == 1){
  194.             printf("Parabens, voce acertou!\n\n");
  195.             pontos++;
  196.         }
  197.         else printf("Voce errou! :(\n\n");
  198.  
  199.         system("Pause");
  200.     }
  201.  
  202.     if(pontos == NUM_PERGUNTAS) printf("\n\nUAU! Voce acertou todas as perguntas! Parabens!\n\n");
  203.     else if(pontos >= NUM_PERGUNTAS/2) printf("\n\nParabens, voce acertou %d questoes!\n\n", pontos);
  204.     else if(pontos == 0) printf("\n\nTem certeza que esta tentando? Voce nao acertou nennhuma.\n\n");
  205.     else printf("\n\nUma pena, voce errou muito e acertou apenas %d questoes.\n\n", pontos);
  206.  
  207.  
  208.  
  209.     system("Pause");
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement