Advertisement
Guest User

Jogo

a guest
Nov 17th, 2019
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.02 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #include <string.h>
  5. #include <conio.h>
  6.  
  7. #define FALSE 0
  8. #define TRUE 1
  9. #define NAO_SEI 2
  10. #define NUM_PERGUNTAS 10                // número de perguntas
  11. #define NUM_RODADAS 10                  // número de rodadas
  12. #define TEMPO 60                        // tempo do cronometro em segundos
  13. #define PONTOS_GANHOS 3                 // qtd de pontos ganhos ao acertar
  14. #define PONTOS_PERDIDOS 1               // qtd de pontos perdidos ao errar
  15. #define PONTOS_NAO_SABE 4               // qtd de pontos perdidos ao não saber
  16. #define PONTOS_TEMPO 4                  // qtd de pontos perdidos ao fim do cronometro
  17.  
  18.  
  19. int main(void)
  20. {
  21.    
  22.     int perguntas, resposta, resposta_user, pontos, i = 0, j = 0, vetor[NUM_PERGUNTAS], acertou, errou, nao_soube;
  23.     char pergunta[1000], str_resposta[10];
  24.    
  25.     setlocale(LC_ALL, "PORTUGUESE");
  26.    
  27.     srand(time(NULL));
  28.    
  29.     for (;;)                                                 //repetição do programa
  30.     {
  31.         acertou = 0;
  32.         errou = 0;
  33.         nao_soube = 0;
  34.         pontos = 0;
  35.         resposta_user = NAO_SEI;
  36.        
  37.         for (i = 0; i < NUM_RODADAS; i++)                    //gera n numeros aleatórios (sem repetição) dentro de um vetor com n posições
  38.         {
  39.             vetor[i] = rand() % NUM_PERGUNTAS;
  40.             for (j = i - 1; j >= 0; j--)
  41.             {
  42.                 while (vetor[i] == vetor[j])
  43.                 {
  44.                     vetor[i] = rand() % NUM_PERGUNTAS;
  45.                     j = i - 1;
  46.                 }
  47.             }
  48.                
  49.         }
  50.        
  51.          for (i = 0; i <= 100; i++)
  52.          {
  53.             printf("\n          Inicializando o Jogo...\n");
  54.             printf("\t[ ");
  55.             for(j = 0; j < i / 5; j++)
  56.             {
  57.                 printf("=");
  58.             }
  59.                
  60.             printf(" ]");
  61.             printf(" %d%%\n", i);
  62.             if(i != 100)
  63.                 system("cls");
  64.             else
  65.                 Sleep(1000);
  66.          }
  67.        
  68.         for (i = 0; i < NUM_RODADAS; i++)                    //começam as rodadas com quantidade n de perguntas
  69.         {
  70.             system("cls");
  71.             fflush(stdin);
  72.             printf("\nPontos: %d\n\n", pontos);
  73.             perguntas = vetor[i];                            //para cada repetição do for, o valor de vetor[i] é atribuído à variável perguntas (desse modo, sempre selecionando perguntas diferentes)
  74.                
  75.             switch (perguntas)
  76.             {
  77.                 case 0:
  78.                     strcpy(pergunta, "A sentença “Os candidatos aprovados e nomeados estarão subordinados ao Regime Jurídico Único dos Servidores Civis da União, das Autarquias e das Fundações Públicas Federais” é uma proposição lógica composta?");
  79.                     resposta = FALSE;
  80.                 break;
  81.                
  82.                 case 1:
  83.                     strcpy(pergunta, "Considerando que P seja a proposição “Não basta à mulher de César ser honesta, ela precisa parecer honesta”\nSe a proposição “A mulher de César é honesta” for falsa e a proposição “A mulher de César parece honesta” for verdadeira, então a proposição P será verdadeira ?");
  84.                     resposta = FALSE;
  85.                 break;
  86.                
  87.                 case 2:
  88.                     strcpy(pergunta, "Considerando que P seja a proposição “A Brasil Central é uma das ruas mais movimentadas do centro da cidade e lá o preço dos aluguéis é alto, mas se o interessado der três passos, alugará a pouca distância uma loja por um valor baixo”.\nA proposição “Se o interessado der três passos, alugará a pouca distância uma loja por um valor baixo” é equivalente à proposição “Se o interessado não der três passos, não alugará a pouca distância uma loja por um valor baixo” ?");
  89.                     resposta = FALSE;
  90.                 break;
  91.                
  92.                 case 3:
  93.                     strcpy(pergunta, "A sentença “O sistema judiciário igualitário e imparcial promove o amplo direito de defesa do réu ao mesmo tempo que assegura uma atuação investigativa completa por parte da promotoria” é uma proposição lógica composta ?");
  94.                     resposta = FALSE;
  95.                 break;
  96.                
  97.                 case 4:
  98.                     strcpy(pergunta, "A sentença “O reitor declarou estar contente com as políticas relacionadas à educação superior adotadas pelo governo de seu país e com os rumos atuais do movimento estudantil” é uma proposição lógica simples ?");
  99.                     resposta = FALSE;
  100.                 break;
  101.                
  102.                 case 5:
  103.                     strcpy(pergunta, "Ao planejarem uma fiscalização, os auditores internos de determinado órgão decidiram que seria necessário testar a veracidade das seguintes afirmações:\nP: Os beneficiários receberam do órgão os insumos previstos no plano de trabalho.\nQ: Há disponibilidade, no estoque do órgão,dos insumos previstos no plano de trabalho.\nR: A programação de aquisição dos insumos previstos no plano de trabalho é adequada.\nSe as afirmações Q e R forem verdadeiras, será verdadeira a seguinte proposição:\n“Se não há disponibilidade, no estoque do órgão, dos insumos previstos no plano de trabalho, então a programação de aquisição dos insumos previstos no plano de trabalho não é adequada” ?");
  104.                     resposta = TRUE;
  105.                 break;
  106.                
  107.                 case 6:
  108.                     strcpy(pergunta, "Considerando a proposição “Se Paulo não foi ao banco, ele está sem dinheiro”.\nSe as proposições “Paulo está sem dinheiro” e “Paulo foi ao banco” forem falsas, então a proposição considerada será verdadeira ?");
  109.                     resposta = FALSE;
  110.                 break;
  111.                
  112.                 case 7:
  113.                     strcpy(pergunta, "A sentença “A presença de um órgão mediador e regulador das relações entre empregados e patrões é necessária em uma sociedade que busca a justiça social” é uma proposição simples ?");
  114.                     resposta = TRUE;
  115.                 break;
  116.                
  117.                 case 8:
  118.                     strcpy(pergunta, "A sentença “um ensino dedicado à formação de técnicos negligencia a formação de cientistas” constitui uma proposição simples ?");
  119.                     resposta = TRUE;
  120.                 break;
  121.                
  122.                 case 9:
  123.                     strcpy(pergunta, "P: O preço do combustível aumenta.\nQ: O salário mínimo aumenta ou a cotação do dólar diminui.\nR: A inflação está controlada.\nS: R -> ~P.\nConsiderando as proposições lógicas acima, onde ~P significa a negação de P, julgue o item:\nA proposição ~S é equivalente à preposição “A inflação está controlada e o preço do combustível aumenta” ?");
  124.                     resposta = TRUE;
  125.                 break;
  126.                
  127.                 default:
  128.                     strcpy(pergunta, "NONE");
  129.                     resposta = NAO_SEI;
  130.                 break;
  131.             }
  132.        
  133.             printf("Pergunta %d:\n\n%s\n\n[0] - Não\n[1] - Sim\n[2] - Não sei\n\n", i + 1, pergunta);
  134.            
  135.             for (j = TEMPO; j >= 0; j--)                                   //cronômetro
  136.             {
  137.                 printf("Tempo: %02d segundos\r", j);
  138.                 Sleep(1000);
  139.                
  140.                 if (kbhit())
  141.                 {
  142.                     resposta_user = getch();
  143.                     if (resposta_user < 48 || resposta_user > 50)
  144.                     {
  145.                         resposta_user = 3;
  146.                         continue;
  147.                     }
  148.                     else
  149.                         break;
  150.                 }
  151.                
  152.             }
  153.            
  154.             switch (resposta_user)
  155.             {
  156.                 case 48:
  157.                     resposta_user = FALSE;
  158.                     strcpy(str_resposta, "Não");
  159.                     break;
  160.                 case 49:
  161.                     resposta_user = TRUE;
  162.                     strcpy(str_resposta, "Sim");
  163.                     break;
  164.                 case 50:
  165.                     resposta_user = NAO_SEI;
  166.                     strcpy(str_resposta, "Não sei");
  167.                     break; 
  168.                 default:
  169.                     resposta_user = 3;
  170.                     strcpy(str_resposta, "Nenhuma");
  171.                     break;
  172.             }
  173.            
  174.             printf("\n\nResposta: %s.", str_resposta);
  175.                
  176.             if (resposta_user == resposta)
  177.             {
  178.                 printf("\n\nVocê Acertou!\n+%d ponto(s)\n", PONTOS_GANHOS);
  179.                 pontos += PONTOS_GANHOS;
  180.                 acertou++;
  181.             }
  182.             else if (resposta_user == NAO_SEI)
  183.             {
  184.                 printf("\n\nOK, tente na próxima!\n-%d ponto(s)\n", PONTOS_NAO_SABE);
  185.                 pontos -= PONTOS_NAO_SABE;
  186.                 nao_soube++;
  187.             }
  188.             else if (resposta_user == 3)
  189.             {
  190.                 printf("\n\nAcabou o seu tempo!\n-%d ponto(s)\n", PONTOS_TEMPO);
  191.                 pontos -= PONTOS_TEMPO;
  192.                 errou++;
  193.             }
  194.             else
  195.             {
  196.                 printf("\n\nVocê Errou!\n-%d ponto(s)\n", PONTOS_PERDIDOS);
  197.                 pontos -= PONTOS_PERDIDOS;
  198.                 errou++;
  199.             }
  200.            
  201.             Sleep(2000);
  202.         }
  203.        
  204.         system("cls");
  205.         fflush(stdin);
  206.         printf("\n\nSeus resultados foram:\n%d acerto(s).\n%d erro(s).\n%d pulo(s) de questão.\n\n\nDigite qualquer tecla para continuar...\n", acertou, errou, nao_soube);
  207.         getch();
  208.         system("cls"); 
  209.         fflush(stdin);
  210.         srand(time(NULL));
  211.         printf("\nVocê deseja jogar novamente? (S) / (N): ");
  212.         if (toupper(getche()) == 'N')
  213.             break;
  214.     }
  215. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement