Automatas Celulares Codigo Java
Automatas Celulares Codigo Java
Automatas Celulares Codigo Java
Automatas Celulares
Practica 2 Lab. Sistemas Adaptativos
*/
import java.util.*;
import javax.swing.*;
NumBinario[i]=regla%2;
System.out.println("El elemento ["+i+"] -> "+NumBinario[i]);
regla/=2;
}
/*Se manda a la clase Regla el vector del numero binario de la regla escogida
por el usuario para establecer la Regla a mostrar
No se consideran valores booleanos para poder simplificar y entender el proceso
de obtencion de la regla*/
R.getRegla(NumBinario[0],NumBinario[1],NumBinario[2],NumBinario[3],NumBin
ario[4],NumBinario[5],NumBinario[6],NumBinario[7]);
R.Reglas();
R.iteracion();
R.mostrar();
}
}
Raw
Regla.java
import java.awt.*;
import javax.swing.*;
public Regla() {
setTitle("Automatas Celulares");
setBackground(Color.BLACK);
setSize(1000,500);
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void Random() {
rand = true;
}
for(int i=0;i<1000;i++){
A[0][i]=0;
}
if (rand == true) {
Random r = new Random();
for(int j=0; j<=500; j++) {
boolean truefalse = r.nextBoolean();
A[0][j] = (truefalse == true)?1:0; /*Se genera un vector
inicial aleatorio*/
}
}else {
A[0][100]=1; /*Se establece un vector inicial con un pixel
encendido a la mitad del vector*/
}
for(int y=0;y<500;y++){
for(int x=0;x<250;x++){
if(x<248){
int j=0,k=0,l=0;
j=x+1;
k=x+2;
l=y+1;
A[l][j]=getCasilla(A[y][x],A[y][j],A[y][k]);
}
else if(x>=248){
int l=0;
l=y+1;
A[l][249]=getCasilla(A[y][248],A[y][249],A[y][0]);
A[l][0]=getCasilla(A[y][249],A[y][0],A[y][1]);
}
}
}
public void getRegla(int H,int G,int F,int E,int D,int C,int B,int A){
for(int y=0;y<11;y++){
for(int x=0;x<11;x++){
System.out.println("Elemento A["+y+"]["+x+"]
:"+A[y][x]);
}
}
for(int y=0;y<500;y++){
try{
for(int x=0;x<250;x++) {
if(A[y][x]==1){
int l=0,k=0;
l=x*5; //multiplicado por tamaño
del cuadro
k=y*5;
g.setColor(Color.WHITE);
g.fillRect(l,k, 5, 5);
}
else {
int a=0,b=0;
a=x*5;
b=y*5;
g.setColor(Color.BLACK);
g.fillRect(a, b, 5, 5);
}
}
Thread.sleep(80);
} catch(InterruptedException e){
System.out.println("Excepcion: " +
e.getMessage());
}
}
/*Se termina el metodo paint*/
}