Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- #include <string.h>
- #include <sys/time.h>
- //Protótipos das funções utilizadas
- void mostrarcampo(int l, int c, int matriz[][6]);
- 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]);
- void listarmatriz();
- void limpartela();
- //Função Principal
- void main(){
- int i = 0, l, c, linha, coluna, valor, valor2, linha2, coluna2, acertos = 0, erros = 0, contador = 0, linha1, coluna1, opcao;
- int matriz2[6][6], matriz[6][6];
- //Este laço de repetição é para o menu ser exibido e o usuário poder limpar a tela appós o uso
- do{
- printf("----------------------------------\n");
- printf("-- JOGO DA MEMÓRIA --\n");
- printf("-- Digite uma opção: --\n");
- printf("-- 1) Mostrar Jogo; --\n");
- printf("-- 2) Limpar Tela --\n");
- printf("-- 3) Iniciar as tentativas: --\n");
- printf("-- 4) Sair --\n");
- printf("----------------------------------\n");
- scanf("%i", &opcao);
- __fpurge(stdin);
- switch(opcao){
- case 1: {
- mostrarcampo(l, c, matriz);
- break;
- }
- case 2: {
- limpartela();
- break;
- }
- case 3: {
- startgame(l, c, linha, coluna, linha2, coluna2, valor, valor2, acertos, contador, erros, matriz, matriz2);
- break;
- }
- case 4:{
- printf("GAME OVER! \n");
- break;
- }
- }
- }while(opcao < 4); //O laço termina aqui
- }
- void mostrarcampo(int l, int c, int matriz[][6]){
- int valores[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
- int quantidade = 36;
- int sorteado;
- srand( time( NULL ) );
- for( l = 0; l < 6; l++ )
- {
- for( c = 0; c < 6; c++ )
- {
- sorteado = rand() % quantidade;
- matriz[l][c] = valores[sorteado];
- valores[sorteado] = valores[quantidade - 1];
- --quantidade;
- }
- }
- puts( "\n\tTabuleiro do Jogo:" );
- puts( "--------------------------------------------------" );
- for(l=0; l<6; l++){
- for(c= 0; c<6; c++){
- printf( "%3d\t", matriz[l][c] );
- }
- puts( "" );
- }
- puts( "--------------------------------------------------" );
- }
- 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]){
- struct timeval inicio, final;
- int tmili;
- gettimeofday(&inicio, NULL);
- // int matriz[6][6], campo[6][6];
- //Matriz preenchida com 0 para ser mostrada para o usuário
- puts( "--------------------------------------------------" );
- for(l=0; l<6; l++){
- for(c=0; c<6; c++){
- matriz2[l][c] = 0;
- printf("%3i\t", matriz2[l][c]);
- }
- puts("");
- }
- puts( "--------------------------------------------------" );
- do{//Agora iniciamos as condições para comparações se o usuário irá acertar ou errar
- printf("Digite a linha 1: \n");
- scanf("%i", &linha);
- linha = linha - 1;
- printf("Digite a coluna 1: \n");
- scanf("%i", &coluna);
- coluna = coluna - 1;
- valor = matriz[linha][coluna];
- printf("%i \n", valor);
- printf("Digite a linha 2: \n");
- scanf("%i", &linha2);
- linha2 = linha2 - 1;
- printf("Digite a coluna 2: \n");
- scanf("%i", &coluna2);
- coluna2 = coluna2 - 1;
- valor2 = matriz[linha2][coluna2];
- printf("%i \n", valor2);
- if(valor == valor2){
- printf("Acertooou! %i %i\n", valor, valor2);
- acertos = acertos + 1;
- matriz2[linha][coluna] = matriz[linha][coluna];
- matriz2[linha2][coluna2] = matriz[linha2][coluna2];
- puts( "--------------------------------------------------" );
- for(l=0; l<6; l++){
- for(c=0; c<6; c++){
- printf("%3i\t", matriz2[l][c]);
- }
- puts("");
- }
- puts( "--------------------------------------------------" );
- }else {
- printf("Errrou\n");
- erros = erros + 1;
- contador = contador - 1;
- }
- printf("%i \n", acertos);
- }while(acertos < 3);
- printf("Acertos: %i\n", acertos);
- printf("Erros: %i\n", erros);
- gettimeofday(&final, NULL);
- tmili = (int) (1000 * (final.tv_sec - inicio.tv_sec) + (final.tv_usec - inicio.tv_usec) / 1000);
- tmili = tmili/1000;
- printf("Tempo decorrido: %d segundos\n", tmili );
- }
- void limpartela(){
- system("clear");
- }
Advertisement
Add Comment
Please, Sign In to add comment