maikonsx

FinalV1

Dec 3rd, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.45 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <sys/time.h>
  6.  
  7. //Protótipos das funções utilizadas
  8.  
  9. void mostrarcampo(int l, int c, int matriz[][6]);
  10. void startgame(int l, int c, int linha, int coluna, int linha2, int coluna2, int valor, int valor2, int acertos, int contador, int erros, int matriz[][6], int matriz2[][6]);
  11. void listarmatriz();
  12. void limpartela();
  13.  
  14. //Função Principal
  15.  
  16. void main(){
  17.  
  18.     int i = 0, l, c, linha, coluna, valor, valor2, linha2, coluna2, acertos = 0, erros = 0, contador = 0, linha1, coluna1, opcao;
  19.     int matriz2[6][6], matriz[6][6];
  20.    
  21.     //Este laço de repetição é para o menu ser exibido e o usuário poder limpar a tela appós o uso
  22.     do{
  23.     printf("----------------------------------\n");
  24.     printf("--    JOGO DA MEMÓRIA           --\n");
  25.     printf("--  Digite uma opção:           --\n");
  26.     printf("--  1) Mostrar Jogo;            --\n");
  27.     printf("--  2) Limpar Tela              --\n");
  28.     printf("--  3) Iniciar as tentativas:   --\n");
  29.     printf("--  4) Sair                     --\n");
  30.     printf("----------------------------------\n");
  31.        
  32.     scanf("%i", &opcao);   
  33.     __fpurge(stdin);
  34.  
  35.     switch(opcao){
  36.             case 1: {
  37.                 mostrarcampo(l, c, matriz);
  38.             break;
  39.             }
  40.             case 2: {
  41.                 limpartela();
  42.             break;
  43.             }
  44.             case 3: {
  45.                 startgame(l, c, linha, coluna, linha2, coluna2, valor, valor2, acertos, contador, erros, matriz, matriz2);
  46.             break;
  47.             }
  48.             case 4:{
  49.                 printf("GAME OVER! \n");
  50.             break;
  51.             }
  52.         }
  53.         }while(opcao < 4); //O laço termina aqui
  54.  
  55.  
  56. }
  57. void mostrarcampo(int l, int c, int matriz[][6]){
  58.  
  59.      int valores[] = {0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15, 16, 17,
  60.                      0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15, 16, 17};
  61.     int quantidade = 36;
  62.     int sorteado;
  63.  
  64.  srand( time( NULL ) );
  65.  
  66.     for( l = 0; l < 6; l++ )
  67.     {
  68.         for( c = 0; c < 6; c++ )
  69.         {
  70.             sorteado = rand() % quantidade;
  71.             matriz[l][c] = valores[sorteado];
  72.  
  73.             valores[sorteado] = valores[quantidade - 1];
  74.             --quantidade;
  75.         }
  76.     }
  77.      puts( "\n\tTabuleiro do Jogo:" );
  78.     puts( "--------------------------------------------------" );
  79.     for(l=0; l<6; l++){
  80.         for(c= 0; c<6; c++){
  81.  
  82.             printf( "%3d\t", matriz[l][c] );
  83.         }
  84.         puts( "" );
  85.     }
  86.     puts( "--------------------------------------------------" );
  87. }
  88. void startgame(int l, int c, int linha, int coluna, int linha2, int coluna2, int valor, int valor2, int acertos, int contador, int erros, int matriz[][6], int matriz2[][6]){
  89.  
  90.  struct timeval inicio, final;
  91.     int tmili;
  92.  gettimeofday(&inicio, NULL);
  93.  
  94. //  int matriz[6][6], campo[6][6];
  95. //Matriz preenchida com 0 para ser mostrada para o usuário
  96.     puts( "--------------------------------------------------" );
  97.     for(l=0; l<6; l++){
  98.         for(c=0; c<6; c++){
  99.             matriz2[l][c] = 0;
  100.             printf("%3i\t", matriz2[l][c]);
  101.         }
  102.         puts("");
  103.     }
  104.     puts( "--------------------------------------------------" );
  105. do{//Agora iniciamos as condições para comparações se o usuário irá acertar ou errar
  106.  
  107.     printf("Digite a linha 1: \n");
  108.         scanf("%i", &linha);
  109.             linha = linha - 1;
  110.     printf("Digite a coluna 1: \n");
  111.         scanf("%i", &coluna);
  112.             coluna = coluna - 1;
  113.     valor = matriz[linha][coluna];
  114.     printf("%i \n", valor);
  115.    
  116.     printf("Digite a linha 2: \n");
  117.         scanf("%i", &linha2);
  118.             linha2 = linha2 - 1;
  119.     printf("Digite a coluna 2: \n");
  120.         scanf("%i", &coluna2);
  121.             coluna2 = coluna2 - 1;
  122.     valor2 = matriz[linha2][coluna2];
  123.     printf("%i \n", valor2);
  124.  
  125.     if(valor == valor2){
  126.         printf("Acertooou! %i %i\n", valor, valor2);
  127.         acertos = acertos + 1;
  128.         matriz2[linha][coluna] = matriz[linha][coluna];
  129.         matriz2[linha2][coluna2] = matriz[linha2][coluna2];
  130.     puts( "--------------------------------------------------" );
  131.         for(l=0; l<6; l++){
  132.             for(c=0; c<6; c++){
  133.                 printf("%3i\t", matriz2[l][c]);
  134.             }
  135.             puts("");
  136.         }
  137.     puts( "--------------------------------------------------" );
  138.     }else {
  139.         printf("Errrou\n");
  140.         erros = erros + 1;
  141.         contador = contador - 1;
  142.     }
  143.  
  144. printf("%i \n", acertos);
  145.  
  146. }while(acertos < 3);
  147.     printf("Acertos: %i\n", acertos);
  148.     printf("Erros: %i\n", erros);
  149.  
  150. gettimeofday(&final, NULL);
  151. tmili = (int) (1000 * (final.tv_sec - inicio.tv_sec) + (final.tv_usec - inicio.tv_usec) / 1000);
  152.     tmili = tmili/1000;
  153.     printf("Tempo decorrido: %d segundos\n", tmili );
  154.  
  155. }
  156. void limpartela(){
  157. system("clear");
  158. }
Advertisement
Add Comment
Please, Sign In to add comment