Hola a todos!

Esta tarde, mientras pasaba mi tiempo libre leyendo en Wikipedia, encontré algo sobre el juego de la vida.

A mi me ha parecido un artículo interesante, y pues la verdad me entusiasmé con el juego y quise programar uno, pero la verdad me quedé en el intento, porque alguien ya había hecho público su código en C.

Aunque tomé su código lo modifiqué un poco y esta es mi versión del juego de la vida.

Código C:
#include //libreria basica de entrada salida
#include //libreria time para sacar la semilla

void main() {
    char cero[]="·";
    char uno[]="";
    int i,j, x=23, y=49;
    char arre[100][100],arreb[100][100];
    int vecino,pre;
    unsigned int iseed = (unsigned int) time (NULL);
    srand (iseed);

    // Llenar la matriz con numeros aleatorios
    for(i=0; i<x; i++) {
        for(j=0; j<y; j++) {
            // Se llena con numeros aleatorios
            arre[i][j]=rand()%2;
        }
    }

    do {
        usleep(300000); // Pausa en microsegundos
        // Reglas de la vida
        for (i=0; i<x; i++) {
            for(j=0; j<y; j++) {
                vecino=0;
                // Contar vecinos
                if(arre[i][j-1]==1) {
                    //vecino izquierda
                    vecino=vecino+1;
                }
                if(arre[i][j+1]==1) {
                    //vecino derecha
                    vecino=vecino+1;
                }
                if (arre[i-1][j]==1) {
                    //vecino arriba
                    vecino=vecino+1;
                }
                if (arre[i+1][j]==1) {
                    //vecino abajo
                    vecino=vecino+1;
                }
                if (arre[i-1][j-1]==1) {
                    //vecino arriba izquierda
                    vecino=vecino+1;
                }
                if (arre[i-1][j+1]==1) {
                    //vecino arriba derecha
                    vecino=vecino+1;
                }
                if (arre[i+1][j-1]==1) {
                    //vecino arriba izquierda
                    vecino=vecino+1;
                }
                if (arre[i+1][j+1]==1) {
                    //vecino abajo derecha
                    vecino=vecino+1;
                }
                // Finaliza la cuenta de vecinos
                // Aplicar las reglas
                if (arre[i][j]==1) {
                    // Si la celula esta viva al inicio
                    if (vecino<=1) {
                        // Si tiene 1 vecino, se muere de soledad
                        arreb[i][j]=0;
                    }
                    if (vecino>=2 && vecino<=3) {
                        // Si tiene entre 2 y 3 vecinos, sobrevive
                        arreb[i][j]=1;
                    }
                    if (vecino>=4) {
                        // Si tiene 4 vecinos, se muere de hambre
                        arreb[i][j]=0;
                    }
                }

                if (arre[i][j]==0) {
                    // Si esta muerta al inicio
                    if (vecino==3) {
                        // Nace por que tiene tres vecinos
                        arreb[i][j]=1;
                    } else {
                        arreb[i][j]=0;
                    }
                }
            }
        }

        // Mostrar la matriz por pantalla
        system ("clear");
        for (i=0;i<x;i++) {
            for (j=0;j<y;j++) {
                if (arreb[i][j]==0) {
                    printf (cero);
                } else {
                    printf (uno);
                }
            }
            printf ("\n");
        }
        for (i=0;i<x;i++) {
            for (j=0;j<y;j++) {
                arre[i][j]=arreb[i][j];
            }
        }
    } while (1==1);
}

La fuente del código: tlacuacheoscuro

Próximamente: Servidores web.
Hasta la próxima!

Anuncios

Acerca de leoslax

Estudiante de ingeniería electrónica

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s