Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - melmont

#1
Hola amigos les explico rapido:
Unos compañeros realizaron un código en c del juego buscaminas, necesito saber para que sirve cada ciclo, matriz y variable ya que hay algunos ciclos los cuales no entiendo su funcion.
Gracias :)

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int d,c,r,con,x,y,b=0,A[10][10]={0},B[10]={0},v=3,C[10][10],a;
   srand(time(NULL));

   for(x=0;x<10;x++){
       for(y=0;y<10;y++){
           C[x][y]=11;
       }
   }
   for(x=0;x<10;x++){
       for(y=0;y<10;y++){
           A[x][y]=0;
       }
   }
   printf("Selecciona una Dificultad:\n1. Facil\n2. Intermedio\n3. Dificil\n");
   scanf("%i",&d);
   switch(d){
   case 1: for(c=0;c<10;c++){
           x=rand()%10;
           y=rand()%10;
           A[x][y]=10;
   }
   a=90;
   break;
   case 2: for(c=0;c<20;c++){
           x=rand()%10;
           y=rand()%10;
           A[x][y]=10;
   }
   a=80;
   break;
   case 3: for(c=0;c<40;c++){
           x=rand()%10;
           y=rand()%10;
           A[x][y]=10;
   }
   a=60;
   break;
   }
   printf("Dame coordenadas (x,y):\n");
   scanf("%i",&x);
   scanf("%i",&y);
   while(b!=3&&a!=0){
       con=0;
       if(A[x][y]==10){
           v=v-1;
           b++;
           printf("Era una bomba te quedan %i oportunidades.\n",v);
           for(r=0;r<10;r++){
               for(c=0;c<10;c++){
                   if(x==r&&y==c){
                       printf("X ");
                   }
                   else{
                       if(C[r][c]==11){
                           printf("# ");
                       }
                       else{
                           printf("%i ",C[r][c]);
                       }
                   }
               }
               printf("\n");
           }
           printf("Dame Coordenadas (x,y):\n");
           scanf("%i",&x);
           scanf("%i",&y);
       }
       else{
           switch(y){
               case 0: if(x==0){
                   B[0]=A[x][y+1];
                   B[1]=A[x+1][y];
                   B[2]=A[x+1][y+1];
                   for(c=0;c<3;c++){
                       if(B[c]==10){
                           con++;
                       }
                   }
               }
               else{
                   if(x==9){
                       B[0]=A[x][y+1];
                       B[1]=A[x-1][y];
                       B[2]=A[x-1][y+1];
                       for(c=0;c<3;c++){
                           if(B[c]==10){
                               con++;
                           }
                       }
                   }
                   else{
                       B[0]=A[x][y+1];
                       B[1]=A[x-1][y];
                       B[2]=A[x-1][y+1];
                       B[3]=A[x+1][y];
                       B[4]=A[x+1][y+1];
                       for(c=0;c<5;c++){
                           if(B[c]==10){
                               con++;
                           }
                       }
                   }

               }
               break;
               case 9: if(x==0){
                       B[0]=A[x][y-1];
                       B[1]=A[x+1][y];
                       B[2]=A[x+1][y-1];
                       for(c=0;c<3;c++){
                           if(B[c]==10){
                               con++;
                           }
                       }
               }
               else{
                   if(x==9){
                       B[0]=A[x][y-1];
                       B[1]=A[x-1][y];
                       B[2]=A[x-1][y-1];
                       for(c=0;c<3;c++){
                           if(B[c]==10){
                               con++;
                           }
                       }
                   }
                   else{
                       B[0]=A[x][y-1];
                       B[1]=A[x-1][y];
                       B[2]=A[x-1][y-1];
                       B[3]=A[x+1][y];
                       B[4]=A[x+1][y-1];
                       for(c=0;c<5;c++){
                           if(B[c]==10){
                               con++;
                           }
                       }
                   }
               }
               break;
               default: switch(x){
                   case 0: B[0]=A[x][y+1];
                           B[1]=A[x][y-1];
                           B[2]=A[x+1][y];
                           B[3]=A[x+1][y-1];
                           B[4]=A[x+1][y+1];
                           for(c=0;c<5;c++){
                               if(B[c]==10){
                                   con++;
                               }
                           }
                           break;
                   case 9:
                           B[0]=A[x][y+1];
                           B[1]=A[x][y-1];
                           B[2]=A[x-1][y];
                           B[3]=A[x-1][y+1];
                           B[4]=A[x-1][y-1];
                           for(c=0;c<5;c++){
                               if(B[c]==10){
                                   con++;
                               }
                           }
                           break;
                           default:
                       B[0]=A[x-1][y-1];
                       B[1]=A[x-1][y];
                       B[2]=A[x-1][y+1];
                       B[3]=A[x][y-1];
                       B[4]=A[x][y+1];
                       B[5]=A[x+1][y];
                       B[6]=A[x+1][y-1];
                       B[7]=A[x+1][y+1];
                       for(c=0;c<8;c++){
                           if(B[c]==10){
                               con++;
                           }
                       }
               }
           }
           C[x][y]=con;
           for(r=0;r<10;r++){
               for(c=0;c<10;c++){
                   fflush(stdin);
                   if(C[r][c]==11){
                       printf("# ");
                   }
                   else{
                       printf("%i ",C[r][c]);
                   }
               }
               printf("\n");
           }
           a=a-1;
           printf("Dame coordenadas(x,y):\n");
           scanf("%i",&x);
           scanf("%i",&y);
       }
   }
   if(b==3){
       printf("Perdiste. ");
   }
   else{
       printf("Ganaste. ");
   }

   return 0;
}