El Clasico Juego de la Vida

Autor del applet: Paola Neri

El jugo de la vida fue creado por Johon Conway para simular vida en un computador.

Dentro de un plano se generan puntos llamados celulas, los cuales viven de acuerdo

a tres reglas:

-Una celula viva permanece viva, solo si tiene entre 2 y 3 vecinos.

-Una celula viva muere si tiene mas de 3 vecinos (sobrepoblacion).

-Una celula muerta revive si tiene exactamente tres vecinos.

Instrucciones.

El boton "renicina" genera un nuevo grupo de celulas de manera aleatoria.

El boton "siguiente" muestra el siguiente estado, de acuerdo al grupo actual de celulas.

El codigo fuente es el siguiente

//El clasico Juego de la Vida

//Autor: Paola Neri 2001

import java.applet.*;

import java.awt.*;

import java.lang.*;

import java.io.*;

public class jgovida2 extends Applet{

Mapa M1;

Button siguiente;

Button reiniciar;

public void init(){

M1=new Mapa();

reiniciar=new Button("reiniciar");

siguiente=new Button("siguiente>");

add(reiniciar);

add(siguiente);

}

public void update(Graphics g) {

g.clearRect(0,0,size().width,size().height);

g.setColor(Color.red);

M1.imprime(g);

}

public void paint(Graphics g){

repaint();

}

public boolean action(Event e, Object o) {

if (e.target == siguiente) {M1.NewEdo();}

if (e.target == reiniciar) {M1=new Mapa();}

repaint();

return true;

}

}

class Mapa{

int []Cel;

int m, n;

Mapa(){

int i;

m=500;

n=50;

Cel=new int[10000];

for(i=0; i

Cel[i]=(int)(Math.random()*10)%2;

}

void imprime(Graphics g){

int i,x,y;

for(i=0,x=0,y=50;i

if(x

if(Cel[i]==1) g.drawString("X",x*8,y);

else g.drawString(" ",x*8,y);

x++; }

else{

x=0;

g.drawString("hola",0,0);

y+=10;}}

}

int Vecinos(int i){

int Nvecinos=0;

if(i+1>0 && i+1

if(i-1>0 && i-1

if(i+n>0 && i+n

if(i-n>0 && i-n

if(i+n+1>0 && i+n+1

if(i+n-1>0 && i+n-1

if(i-n+1>0 && i-n+1

if(i-n-1>0 && i-n-1

return Nvecinos;

}

public void NewEdo()

{int i,Nvecinos;

for(i=0;i

Nvecinos=0;

Nvecinos=Vecinos(i);

if(Cel[i]==1){

if(Nvecinos==2 || Nvecinos==3) Cel[i]=1;

else Cel[i]=0;}

else if(Cel[i]==0)

if(Nvecinos==3) Cel[i]=1;}

}

}