Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 7.84 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main(int argc, char *argv[])
  6. {
  7.         if(argc>1)
  8.         {
  9.             int linha,coluna;
  10.             FILE *jogobase= fopen(argv[1], "r");
  11.             fscanf(jogobase,"%d %d\n\n",&linha,&coluna);
  12.             char matrizpronta[26][26];
  13.             int i,j;
  14.             for(i=0;i<=linha;i++)
  15.             {
  16.                 for(j=0;j<=coluna;j++)
  17.                 {
  18.                     fscanf(jogobase, "%c", &matrizpronta[i][j] );
  19.                 }
  20.             }
  21.              int lin,col;
  22.             printf("\n\n   ");
  23.             for (int i = 0; i < coluna; i++)
  24.                 printf("   %d", i);
  25.             printf("\n");
  26.             for(lin=0;lin<linha;lin++)
  27.             {
  28.                 printf(" %1d  ",lin );
  29.                 for(col=0;col<coluna;col++)
  30.                 {
  31.                         printf("  - ");
  32.                 }
  33.                 printf("\n");
  34.             }
  35.  
  36.             while(i==0)
  37.             {
  38.                 printf("\n\n Digite 1 para resolver o campo minado:");
  39.                 scanf("%d",&i);
  40.             }
  41.             printf("\n\n    ");
  42.             for (int i = 0; i < coluna; i++)
  43.                 printf("   %d", i);
  44.             printf("\n");
  45.                 for(lin=0;lin<linha;lin++)
  46.                 {
  47.                     printf(" %2d  ",lin);
  48.                     for(col=0;col<coluna;col++)
  49.                     {
  50.                                 printf("%3c ",matrizpronta[lin][col]);
  51.  
  52.                     }
  53.                     printf("\n");
  54.                 }
  55.             fclose(jogobase);
  56.         }
  57.         else
  58.         {
  59.             int cm1,lm1,contacelula=1,contvet=0,mina,a,diferente;
  60.         int minas[10];
  61.         int m1[10][10];
  62.         srand(time(NULL));
  63.         //atribui numeros inteiro a todas as celulas da matriz
  64.         for ( cm1 = 0; cm1 < 10; cm1++)
  65.         {
  66.             for ( lm1 = 0; lm1 < 10; lm1++)
  67.             {
  68.                 m1[cm1][lm1]=contacelula;
  69.                 contacelula++;
  70.             }
  71.         }
  72.  
  73.         printf("\n\n");
  74.         //gera mina
  75.         while (contvet<10)
  76.        {
  77.            mina=rand()%100+1;
  78.            diferente=0;
  79.                 for (a=0;a<10;a++)
  80.                 {
  81.                     if (mina == minas[a])
  82.                     {
  83.                         contvet--;
  84.                             diferente=1;
  85.                     }
  86.  
  87.                 }
  88.                 if (diferente ==0 )
  89.                 {
  90.                     minas[contvet]=mina;
  91.                 }
  92.                 contvet++;
  93.        }
  94.         //atribui as minas na martiz original
  95.             for ( cm1 = 0; cm1 < 10; cm1++)
  96.                 {
  97.                     for ( lm1 = 0; lm1 < 10; lm1++)
  98.                     {
  99.                         for(contvet=0;contvet<10;contvet++)
  100.                         {
  101.                             if (minas[contvet]==m1[cm1][lm1])
  102.                             {
  103.                                 m1[cm1][lm1]= 0;
  104.                             }
  105.                         }
  106.                     }
  107.                 }
  108.         printf("\n\n");
  109.                 // tabela de bombas do usuaria
  110.         char bombas[10][10];
  111.         int cmb,lmb;
  112.         //atribui bombas na tabela ( o para espaço vazio e x para bomba)
  113.     for ( cm1 = 0; cm1 < 10; cm1++)
  114.     {
  115.         for ( lm1 = 0; lm1 < 10; lm1++)
  116.         {
  117.            for ( cmb = 0; cmb < 10; cmb++)
  118.                 {
  119.                     for ( lmb = 0; lmb < 10; lmb++)
  120.                         {
  121.                             if(cm1==cmb &&lm1==lmb)
  122.                                 {
  123.                                     if (m1[cm1][lm1]==0)
  124.                                     {
  125.                                         bombas[cmb][lmb]='x';
  126.                                     }
  127.                                     else
  128.                                     {
  129.                                         bombas[cmb][lmb]='o';
  130.                                     }
  131.                                  }
  132.                         }
  133.                 }
  134.         }
  135.     }
  136.  
  137.         //montando a tabela
  138.         int auxlinha=0,auxcol=0,lin,col,linmax,colmax;
  139.         int contabomba=0;
  140.         cmb=0;
  141.         lmb=0;
  142.         int matrizpronta[10][10];
  143.         while(cmb<10)
  144.         {
  145.             lmb=0;
  146.             while(lmb<10)
  147.             {
  148.  
  149.                   if (bombas[cmb][lmb]=='o')
  150.                   {
  151.                     contabomba=0;
  152.                     if(lmb==0)
  153.                   {
  154.                   lin=cmb-1;
  155.                   col=lmb;
  156.                   linmax=cmb+2;
  157.                   colmax=lmb+2;
  158.                   for(auxlinha=lin;auxlinha<linmax;auxlinha++)
  159.                   {
  160.                       for(auxcol=col;auxcol<colmax;auxcol++)
  161.                         {
  162.                             if(bombas[auxlinha][auxcol]=='x')
  163.                             {
  164.                                 contabomba++;
  165.                             }
  166.                         }
  167.                   }
  168.                   matrizpronta[cmb][lmb]=contabomba;
  169.                   }
  170.                   else if(lmb<9)
  171.                   {
  172.                     lin=cmb-1;
  173.                   col=lmb-1;
  174.                   linmax=cmb+2;
  175.                   colmax=lmb+2;
  176.                   for(auxlinha=lin;auxlinha<linmax;auxlinha++)
  177.                   {
  178.                       for(auxcol=col;auxcol<colmax;auxcol++)
  179.                         {
  180.                             if(bombas[auxlinha][auxcol]=='x')
  181.                             {
  182.                                 contabomba++;
  183.                             }
  184.                         }
  185.                   }
  186.                   matrizpronta[cmb][lmb]=contabomba;
  187.                   }
  188.                   else if(lmb==9)
  189.                   {
  190.                       lin=cmb-1;
  191.                   col=lmb-1;
  192.                   linmax=cmb+2;
  193.                   colmax=lmb+1;
  194.                   for(auxlinha=lin;auxlinha<linmax;auxlinha++)
  195.                   {
  196.                       for(auxcol=col;auxcol<colmax;auxcol++)
  197.                         {
  198.                             if(bombas[auxlinha][auxcol]=='x')
  199.                             {
  200.                                 contabomba++;
  201.                             }
  202.                         }
  203.                   }
  204.                   matrizpronta[cmb][lmb]=contabomba;
  205.                   }
  206.                   }
  207.                   else
  208.                   {
  209.                       matrizpronta[cmb][lmb]=9;
  210.                   }
  211.                 lmb++;
  212.             }
  213.             cmb++;
  214.         }
  215.  
  216.         printf("\n\n");
  217.         printf("      0   1   2   3   4   5   6   7   8   9\n\n");
  218.         for(lin=0;lin<10;lin++)
  219.         {
  220.             printf(" %1d  ",lin );
  221.             for(col=0;col<10;col++)
  222.             {
  223.                     printf("  - ");
  224.             }
  225.             printf("\n");
  226.         }
  227.         int i=0;
  228.         while(i==0)
  229.         {
  230.             printf("\n\n Digite 1 para resolver o campo minado:");
  231.             scanf("%d",&i);
  232.         }
  233.             printf("\n\n");
  234.         printf("       0   1   2   3   4   5   6   7   8   9\n\n");
  235.                 for(lin=0;lin<10;lin++)
  236.                 {
  237.                     printf(" %2d  ",lin);
  238.                     for(col=0;col<10;col++)
  239.                     {
  240.                         if ( matrizpronta[lin][col]<9 )
  241.                         {
  242.                                 printf("%3d ",matrizpronta[lin][col]);
  243.                         }
  244.                         else if ( matrizpronta[lin][col]==9)
  245.                         {
  246.                             printf("  X ");
  247.                         }
  248.                         else
  249.                         {
  250.                             printf("  - ");
  251.                         }
  252.                     }
  253.                     printf("\n");
  254.                 }
  255.             }
  256.     return 0;
  257. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement