Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- #include <string.h>
- #include <conio.h>
- #define FALSE 0
- #define TRUE 1
- #define NAO_SEI 2
- #define NUM_PERGUNTAS 10 // número de perguntas
- #define NUM_RODADAS 10 // número de rodadas
- #define TEMPO 60 // tempo do cronometro em segundos
- #define PONTOS_GANHOS 3 // qtd de pontos ganhos ao acertar
- #define PONTOS_PERDIDOS 1 // qtd de pontos perdidos ao errar
- #define PONTOS_NAO_SABE 4 // qtd de pontos perdidos ao não saber
- #define PONTOS_TEMPO 4 // qtd de pontos perdidos ao fim do cronometro
- int main(void)
- {
- int perguntas, resposta, resposta_user, pontos, i = 0, j = 0, vetor[NUM_PERGUNTAS], acertou, errou, nao_soube;
- char pergunta[1000], str_resposta[10];
- setlocale(LC_ALL, "PORTUGUESE");
- srand(time(NULL));
- for (;;) //repetição do programa
- {
- acertou = 0;
- errou = 0;
- nao_soube = 0;
- pontos = 0;
- resposta_user = NAO_SEI;
- for (i = 0; i < NUM_RODADAS; i++) //gera n numeros aleatórios (sem repetição) dentro de um vetor com n posições
- {
- vetor[i] = rand() % NUM_PERGUNTAS;
- for (j = i - 1; j >= 0; j--)
- {
- while (vetor[i] == vetor[j])
- {
- vetor[i] = rand() % NUM_PERGUNTAS;
- j = i - 1;
- }
- }
- }
- for (i = 0; i <= 100; i++)
- {
- printf("\n Inicializando o Jogo...\n");
- printf("\t[ ");
- for(j = 0; j < i / 5; j++)
- {
- printf("=");
- }
- printf(" ]");
- printf(" %d%%\n", i);
- if(i != 100)
- system("cls");
- else
- Sleep(1000);
- }
- for (i = 0; i < NUM_RODADAS; i++) //começam as rodadas com quantidade n de perguntas
- {
- system("cls");
- fflush(stdin);
- printf("\nPontos: %d\n\n", pontos);
- 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)
- switch (perguntas)
- {
- case 0:
- 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?");
- resposta = FALSE;
- break;
- case 1:
- 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 ?");
- resposta = FALSE;
- break;
- case 2:
- 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” ?");
- resposta = FALSE;
- break;
- case 3:
- 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 ?");
- resposta = FALSE;
- break;
- case 4:
- 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 ?");
- resposta = FALSE;
- break;
- case 5:
- 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” ?");
- resposta = TRUE;
- break;
- case 6:
- 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 ?");
- resposta = FALSE;
- break;
- case 7:
- 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 ?");
- resposta = TRUE;
- break;
- case 8:
- strcpy(pergunta, "A sentença “um ensino dedicado à formação de técnicos negligencia a formação de cientistas” constitui uma proposição simples ?");
- resposta = TRUE;
- break;
- case 9:
- 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” ?");
- resposta = TRUE;
- break;
- default:
- strcpy(pergunta, "NONE");
- resposta = NAO_SEI;
- break;
- }
- printf("Pergunta %d:\n\n%s\n\n[0] - Não\n[1] - Sim\n[2] - Não sei\n\n", i + 1, pergunta);
- for (j = TEMPO; j >= 0; j--) //cronômetro
- {
- printf("Tempo: %02d segundos\r", j);
- Sleep(1000);
- if (kbhit())
- {
- resposta_user = getch();
- if (resposta_user < 48 || resposta_user > 50)
- {
- resposta_user = 3;
- continue;
- }
- else
- break;
- }
- }
- switch (resposta_user)
- {
- case 48:
- resposta_user = FALSE;
- strcpy(str_resposta, "Não");
- break;
- case 49:
- resposta_user = TRUE;
- strcpy(str_resposta, "Sim");
- break;
- case 50:
- resposta_user = NAO_SEI;
- strcpy(str_resposta, "Não sei");
- break;
- default:
- resposta_user = 3;
- strcpy(str_resposta, "Nenhuma");
- break;
- }
- printf("\n\nResposta: %s.", str_resposta);
- if (resposta_user == resposta)
- {
- printf("\n\nVocê Acertou!\n+%d ponto(s)\n", PONTOS_GANHOS);
- pontos += PONTOS_GANHOS;
- acertou++;
- }
- else if (resposta_user == NAO_SEI)
- {
- printf("\n\nOK, tente na próxima!\n-%d ponto(s)\n", PONTOS_NAO_SABE);
- pontos -= PONTOS_NAO_SABE;
- nao_soube++;
- }
- else if (resposta_user == 3)
- {
- printf("\n\nAcabou o seu tempo!\n-%d ponto(s)\n", PONTOS_TEMPO);
- pontos -= PONTOS_TEMPO;
- errou++;
- }
- else
- {
- printf("\n\nVocê Errou!\n-%d ponto(s)\n", PONTOS_PERDIDOS);
- pontos -= PONTOS_PERDIDOS;
- errou++;
- }
- Sleep(2000);
- }
- system("cls");
- fflush(stdin);
- 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);
- getch();
- system("cls");
- fflush(stdin);
- srand(time(NULL));
- printf("\nVocê deseja jogar novamente? (S) / (N): ");
- if (toupper(getche()) == 'N')
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement