miércoles, 28 de agosto de 2013

Individual Juego de la vida

Juan Carlos Guzman Pinales 
1483821

Introducción
El juego de la vida es un automata celulares diseñado por el matemático británico Jhon Horton Conway en el año 1970.Este simula en cierta manera el mundo en el que vivimos, nos encontramos con una cuadricula de tamaño predeterminado (por nosotros) en el que cada casilla puede tener dos estados, vivo o muerto, este estado viene determinado por las casillas circundantes mediante unas sencillas reglas.

Como funciona 
Una casilla muerta con exactamente 3 casillas vecinas vivas “nace” (el siguiente turno estará viva). Una casilla viva con 2 ó 3 casillas vecinas vivas sigue viva, si solo tiene 1 vecino muere por soledad, si tiene mas de 3 vecinos muere por superpoblación.


Código
 

#include 
#include 
#include 
#include 
 main ()
{
  
int ara[50][50],arb[50][50]; //rango de las secuencias de la matriz
int i,j,vecino,p; 
 system ("color 92");//veamoslo como germenes en el agua
srand (time(NULL)); //con esta funcion aremos que se llena la matriz de forma aleatoria
 
  for (i=0;i<50;i++)
  {
  for (j=0;j<50;j++)
          {
      
          ara[i][j]=rand()%2;
      }
  
  }
  for (i=0;i<50;i++)
    {
  for (j=0;j<50;j++)
     {
   printf ("%d ",ara[i][j]);
      }
printf ("\n", &p);
    }
do
{
usleep(500000); //tiempo de generacion de la siguiente matriz en nanosegundos
for (i=0;i<50;i++)
{
  
for (j=0;j<50;j++)
{
     vecino=0;
     //empieza a contar los vecinos
if (ara[i][j-1]==1) //vecino de la izquierda
{
vecino=vecino+1;
}
if (ara[i][j+1]==1) //vecino de la derecha
                 {
                 vecino=vecino+1;
                 }
  if (ara[i-1][j]==1) //vecino de arriba
                 {
                 vecino=vecino+1;
                 }
                 if (ara[i+1][j]==1)  //vecino de abajo
                 { 
                 vecino=vecino+1;
                 }
  if (ara[i-1][j-1]==1) //vecino arriba de la izquierda
                 {
                 vecino=vecino+1;
                 }
      if (ara[i-1][j+1]==1) //vecino arriba derecha
                 {
                 vecino=vecino+1;
                 }
       if (ara[i+1][j-1]==1) //vecino abajo de la izquierda 
                 {
                 vecino=vecino+1;
                 }
               if (ara[i+1][j+1]==1) //veciono abajo de la derecha
                 {
                 vecino=vecino+1;
                 }
  
//reglas que determinan que casillas viven o mueren
if (ara[i][j]==1) //vivo empezando
{
if (vecino<=1) //muere por que esta solo
  {
   arb[i][j]=0;
  }
if (vecino>=2 && vecino<=3)//vive
  {
   arb[i][j]=1;
  }
   if (vecino>=4) //se muere
                  {
                   arb[i][j]=0;
                  }
}
if (ara[i][j]==0) //si esta muerta
{
if (vecino==3) //nace por tener tres vecinos
  {
arb[i][j]=1;
  }
  else
   {
     arb[i][j]=0;
   }
}
  }
  
}
  system("cls");
  for (i=0;i<50;i++)
    {
  for (j=0;j<50;j++)
     {
   if (arb[i][j]==0)
            { 
    printf (" "); //si esta muerta 
    }
    else
    {
    printf ("*"); //si esta viva
    }
      }
printf ("\n");
    }
    for (i=0;i<50;i++)
    {
          for (j=0;j<50;j++)
          {
          ara[i][j]=arb[i][j];
          }
          
    }
    
}

while (1==1);
} //ciclo infinito
 

Capturas de pantalla Conclusión
Trabajar con el juego de la vida fue algo muy interesante ademas de que te hace dar una imagen de como trabajan algunos juegos o algunas vidas artificiales como por ejemplo las de los llamados tamagochis solo hay que tener algo de imaginación ademas de que se puede asemejar simulando pequeñas formas de vida unicelular que necesitan de ciertas reglas para sobrevivir.

No hay comentarios:

Publicar un comentario