• Sábado 14 de Diciembre de 2024, 21:58

Autor Tema:  Problema con Automata Celular  (Leído 2339 veces)

Turel

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Problema con Automata Celular
« en: Domingo 20 de Julio de 2008, 03:48 »
0
Hola a todos, como pasatiempo estoy realizando el algoritmo del automata celular de conway, ya lo acabe(segun yo ¬¬) y al correrlo el programa se paraliza a medio proceso y ya no continua, me gustaria que me ayudaran a identificar el problema.

aqui les dejo todo mi codigo:
Código: Text
  1. #include<iostream.h>
  2.  
  3. void main()
  4. {
  5.     int m,n,i,j,flagCell=0,iniX,iniY,finX,finY,a,b,vec;
  6.     int cells[10][10], vecinos[10][10];
  7.     char opc;
  8.     do
  9.     {
  10.         cout<<"DEMO v0.1----> Simulacion de Celdas; AUTOMATA CELULARaannn";
  11.         cout<<"Bienvenido al Programa de Simulacion de Celulas Por Favorn";
  12.         cout<<"Seleccione una Opcion del Siguiente Menu y presione Enter para continuar:n";
  13.         cout<<"(C) Crear Granja Celular.n";
  14.         cout<<"(M) Mostrar Granja Actualn";
  15.         cout<<"(A) Avanzar el Tiempo(Ejecucion del AUTOMATA)n";
  16.         cout<<"(S) Salirnn";
  17.         cout<<"Digite su Opcion: ";
  18.         cin>>opc;
  19.  
  20.         switch(opc)
  21.         {
  22.         case 'c':
  23.         case 'C':
  24.             cout<<"Defina el Numero de Columnas y Filas De La Granja Celular:n";
  25.             cin>>m>>n;
  26.             cout<<"<<<Empieza la Definicion de los Estados de la Simulacion>>>n";
  27.             cout<<"Digite 0 para Celula Muerta y 1 para Vivann";
  28.             for(i=0;i<=m-1;i++)
  29.             {
  30.                 for(j=0;j<=n-1;j++)
  31.                 {
  32.                     cout<<"Digite el Estado De la Celula en el espacio ("<<i+1<<","<<j+1<<"): ";
  33.                     cin>>cells[i][j];
  34.                 }
  35.             }
  36.             flagCell=1;
  37.             break;
  38.        
  39.         case 'm':
  40.         case 'M':
  41.             if(flagCell==1)
  42.             {
  43.                 cout<<"<<Imprimiendo Granja Celular, Por Favor Espere>>n";
  44.                 for(i=0;i<=m-1;i++)
  45.                 {
  46.                     for(j=0;j<=n-1;j++)
  47.                     {
  48.                         if(cells[i][j]==0) cout<<"M ";
  49.                         else cout<<"V ";
  50.                     }
  51.                     cout<<"n";
  52.                 }
  53.                 cout<<"Histograma:nnV: Celula Actual vivanM: Celula Actualmente muertann";
  54.             }
  55.             else cout<<"Error01: Print Error - Tratando de Imprimir una Granja no Creada Anteriormente aann";
  56.             break;
  57.  
  58.         case 'a':
  59.         case 'A':
  60.             if(flagCell==1)
  61.             {
  62.                 for(i=0;i<=m-1;i++)
  63.                 {
  64.                     for(j=0;j<=n-1;j++)
  65.                     {
  66.                         iniX=i-1;
  67.                         iniY=j-1;
  68.                         finX=i+1;
  69.                         finY=j+1;
  70.                         if(iniX<0) iniX=i;
  71.                         if(iniY<0) iniY=j;
  72.                         if(finX==m) finX=m-1;
  73.                         if(finY==n) finY=n-1;
  74.                         vec=0;
  75.                         a=0;
  76.                         b=0;
  77.                         for(a=iniX;a<=finX;a++)
  78.                         {
  79.                             for(b=iniY;b<=finY;b++)
  80.                             {
  81.                                 if(a!=i||b!=j)
  82.                                 {
  83.                                     if (cells[a][b]==1) vec++;
  84.                                 }
  85.                             }
  86.                         }
  87.                         vecinos[i][j]=vec;
  88.                         cout<<"La Celula ("<<i+1<<","<<j+1<<") Tiene "<<vec<<" Vecinosn";
  89.                     }
  90.                 }
  91.             }
  92.             else cout<<"Error 02: Automate Error - El Automata no Puede ejecutarse si la Granja no ha sido Definidaaann";
  93.  
  94.             for(i=0;i<=m-1;i++)
  95.             {
  96.                 for(j=0;j<=n-1;j)
  97.                 {
  98.                     if(cells[i][j]==0)
  99.                     {
  100.                         if(vecinos[i][j]==3) cells[i][j]=1;
  101.                     }
  102.                     else
  103.                     {
  104.                         if(vecinos[i][j]<=1||vecinos[i][j]>=4) cells[i][j]=0;
  105.                     }
  106.                 }
  107.             }
  108.             cout<<"El tiempo avanzo con Exito Ahora puede mostrar La Granja con la siguiente Generacionnnaa";
  109.             break;
  110.  
  111.         }
  112.     }while(opc!='s'||opc!='S');
  113. }
  114.  

me gustaria que me ayudaran a identificar porque se detiene....