simula
Class Simulador

java.lang.Object
  |
  +--simula.Simulador
All Implemented Interfaces:
EspacioRemoto, java.rmi.Remote

public class Simulador
extends java.lang.Object
implements EspacioRemoto

Representa una de las subgradillas que componen la gradilla espacial de la simulacion identifica y se comunica con las subgradillas vecinas (para intercambiar termitas viajeras) mediante un sistema de coordenadas que ordena las subgrads (e indica sus vecinos potenciales {(y,x)}) y una jashtabla con referencias a los vecinos que de hecho estan disponibles El estado cambiante de la simulacion a nivel local es reportado u Visualizador que lo despliega y se encarga tambien de sincronizar los Simuladores participantes


Field Summary
protected static java.util.LinkedList bichos
          los bichos que participan
private  boolean do_render
          flag para indicar el estatus (activo/inactivo) del rendereo
private  int num_vecinos
          numero de nodos vecinos
private  java.lang.String props_path
          ruta hasta el archivo de configuracion inicial
private  int rule
          indica que regla aplicar
private  java.lang.String self
          id nodal para enviar coordenadas absolutas al visualizador
 
Constructor Summary
Simulador(java.lang.String properties_path)
          lee un archivo de configuracion se exporta como objeto remoto inicializa bichos lleva como argumento el path correspondiente a su archivo de configuracon
 
Method Summary
 void aquiCambio()
          se utiliza para sincronizarse entre los nodos
 boolean comienza(java.lang.String visualizador_ip, int tamanhoY, int tamanhoX)
          recibe los parámetros por parte del usuario y (re)inicia la simulación tambien obtiene las referencias a los simuladores vecinos
 void end()
           
 float getConcentracionRemota(int y, int x, int tipo)
          regresa la concentracion solicitada respecto una termita que sondeo a partir de su Sitio (en ostro Espacio) conocer la concentracion del Sitio indicado en este E.V.
 java.lang.String getID()
           
protected  void incluyeOstra(java.util.Random azar, int tipo)
          utilizado para ingresar bichos al espacio
static void main(java.lang.String[] argv)
           
static void mata(bicho.Bicho bicho)
           
protected  void nextCiclo()
          cicla la simulación de acuerdo a la logica distribuida del programa, e.d. llama a mover bichos, exporta emigrantes y reintegra rechazos
 boolean setTremitaAfar(int y, int x, int w, int tipo)
          incluye una tremita proveniente de otro EspacioRemoto
 void toggleRendering()
          habilita/deshabilita el rendering del estado de este Simulador
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bichos

protected static java.util.LinkedList bichos
los bichos que participan


self

private java.lang.String self
id nodal para enviar coordenadas absolutas al visualizador


num_vecinos

private int num_vecinos
numero de nodos vecinos


rule

private int rule
indica que regla aplicar


props_path

private java.lang.String props_path
ruta hasta el archivo de configuracion inicial


do_render

private boolean do_render
flag para indicar el estatus (activo/inactivo) del rendereo

Constructor Detail

Simulador

public Simulador(java.lang.String properties_path)
lee un archivo de configuracion se exporta como objeto remoto inicializa bichos lleva como argumento el path correspondiente a su archivo de configuracon

Method Detail

comienza

public boolean comienza(java.lang.String visualizador_ip,
                        int tamanhoY,
                        int tamanhoX)
                 throws java.rmi.RemoteException,
                        java.rmi.NotBoundException,
                        java.net.MalformedURLException
recibe los parámetros por parte del usuario y (re)inicia la simulación tambien obtiene las referencias a los simuladores vecinos

Specified by:
comienza in interface EspacioRemoto
java.rmi.RemoteException
java.rmi.NotBoundException
java.net.MalformedURLException

incluyeOstra

protected void incluyeOstra(java.util.Random azar,
                            int tipo)
utilizado para ingresar bichos al espacio

Parameters:
azar - genera un estado inicial aleatorio

getConcentracionRemota

public float getConcentracionRemota(int y,
                                    int x,
                                    int tipo)
                             throws java.rmi.RemoteException
regresa la concentracion solicitada respecto una termita que sondeo a partir de su Sitio (en ostro Espacio) conocer la concentracion del Sitio indicado en este E.V.

Specified by:
getConcentracionRemota in interface EspacioRemoto
Parameters:
y - coordenada Y
x - coordenada X
Returns:
concentracion en la direccion indicada
Throws:
java.rmi.RemoteException - posible error en la obtencion de un valor remoto

setTremitaAfar

public boolean setTremitaAfar(int y,
                              int x,
                              int w,
                              int tipo)
                       throws java.rmi.RemoteException
incluye una tremita proveniente de otro EspacioRemoto

Specified by:
setTremitaAfar in interface EspacioRemoto
Parameters:
y - coordenada
x - coordenada
w - el angulo
Returns:
indica si la accion pudo ser ejecutada
Throws:
java.rmi.RemoteException - en el tramite remoto

nextCiclo

protected void nextCiclo()
cicla la simulación de acuerdo a la logica distribuida del programa, e.d. llama a mover bichos, exporta emigrantes y reintegra rechazos


aquiCambio

public void aquiCambio()
                throws java.rmi.RemoteException
se utiliza para sincronizarse entre los nodos

Specified by:
aquiCambio in interface EspacioRemoto
Throws:
java.rmi.RemoteException - x

end

public void end()
Specified by:
end in interface EspacioRemoto

main

public static void main(java.lang.String[] argv)
                 throws java.lang.Exception
java.lang.Exception

toggleRendering

public void toggleRendering()
                     throws java.rmi.RemoteException
habilita/deshabilita el rendering del estado de este Simulador

Specified by:
toggleRendering in interface EspacioRemoto
java.rmi.RemoteException

mata

public static void mata(bicho.Bicho bicho)

getID

public java.lang.String getID()
                       throws java.rmi.RemoteException
Specified by:
getID in interface EspacioRemoto
java.rmi.RemoteException