Package es.ull.mazesolver.agent
Class SARulesAgent
java.lang.Object
es.ull.mazesolver.agent.Agent
es.ull.mazesolver.agent.SARulesAgent
- All Implemented Interfaces:
Serializable
,Cloneable
Agente cuya lógica se basa en reglas de situación-acción. Sigue una
arquitectura de subsunción, donde se aplica la regla de mayor precedencia
para la cual la situación se cumple.
- See Also:
- Serialized Form
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionSARulesAgent(Environment env)
Crea un agente basado en reglas de situación-acción con el comportamiento por defecto. -
Method Summary
Modifier and TypeMethodDescriptionclone()
boolean
Convierte el código fuente guardado en m_code en la representación de las reglas de situación-acción.void
doMovement(Direction dir)
Hace que el agente realice el movimiento especificado, sin comprobar que se trata de un movimiento válido.Pregunta al agente el color por defecto de los agentes de su tipo.Pregunta al agente el nombre del algoritmo que implementa.getCode()
Obtiene el panel de configuración asociado al agente.Obtiene el siguiente movimiento dado el estado actual del agente.boolean
hasVisited(Direction dir)
Indica si una celda adyacente al agente ha sido visitada ya por el mismo.void
Elimina la memoria que el agente tenga sobre el entorno.void
Cambia el código fuente cargado.void
setEnvironment(Environment env)
Cambia el entorno en el que se sitúa el agente.Methods inherited from class es.ull.mazesolver.agent.Agent
equals, getAgentColor, getAgentName, getEnvironment, getPos, getX, getY, hashCode, loadFile, look, saveFile, setAgentColor, setAgentName, setPosition
-
Field Details
-
MINIMUM_WIDTH
public static final int MINIMUM_WIDTH- See Also:
- Constant Field Values
-
MINIMUM_HEIGHT
public static final int MINIMUM_HEIGHT- See Also:
- Constant Field Values
-
DEFAULT_AGENT_SRC
- See Also:
- Constant Field Values
-
-
Constructor Details
-
SARulesAgent
Crea un agente basado en reglas de situación-acción con el comportamiento por defecto.- Parameters:
env
- Entorno donde se sitúa el agente.
-
-
Method Details
-
getCode
- Returns:
- El código fuente actualmente cargado en el agente.
-
setCode
Cambia el código fuente cargado. Se debe llamar acompileCode()
para que el nuevo código pueda ser ejecutado por el agente.- Parameters:
code
- Nuevo código fuente.
-
compileCode
public boolean compileCode()Convierte el código fuente guardado en m_code en la representación de las reglas de situación-acción.- Returns:
true
si la compilación fue exitosa yfalse
si no.
-
getCompilationErrors
- Returns:
- La lista de errores de compilación.
-
setEnvironment
Description copied from class:Agent
Cambia el entorno en el que se sitúa el agente.
Este método debería sobrecargarse en las clases derivadas que contengan información acerca del camino a seguir por el agente (un plan) de forma que éste siga siendo coherente tras el cambio de laberinto.- Overrides:
setEnvironment
in classAgent
- Parameters:
env
- Entorno donde colocar el agente.
-
getAlgorithmName
Description copied from class:Agent
Pregunta al agente el nombre del algoritmo que implementa.- Specified by:
getAlgorithmName
in classAgent
- Returns:
- Nombre del algoritmo que implementa.
-
getAlgorithmColor
Description copied from class:Agent
Pregunta al agente el color por defecto de los agentes de su tipo.- Specified by:
getAlgorithmColor
in classAgent
- Returns:
- Color por defecto de los agentes que implementan ese algoritmo.
-
getNextMovement
Description copied from class:Agent
Obtiene el siguiente movimiento dado el estado actual del agente.- Specified by:
getNextMovement
in classAgent
- Returns:
- La dirección en la que el agente quiere realizar el siguiente movimiento.
-
doMovement
Description copied from class:Agent
Hace que el agente realice el movimiento especificado, sin comprobar que se trata de un movimiento válido.
La clase base sólo cambia la posición del agente, si se desea más funcionalidad, se debe sobrecargar en las clases derivadas.- Overrides:
doMovement
in classAgent
- Parameters:
dir
- Dirección hacia la que mover el agente.
-
resetMemory
public void resetMemory()Description copied from class:Agent
Elimina la memoria que el agente tenga sobre el entorno. No elimina su configuración, sino que lo deja en el estado inicial.- Specified by:
resetMemory
in classAgent
-
getConfigurationPanel
Description copied from class:Agent
Obtiene el panel de configuración asociado al agente.- Specified by:
getConfigurationPanel
in classAgent
- Returns:
- Un panel de configuración para el agente.
-
hasVisited
Indica si una celda adyacente al agente ha sido visitada ya por el mismo.- Parameters:
dir
- Dirección en la que hay que mirar.- Returns:
- Si la celda adyacente en esa dirección ha sido visitada o no.
-
clone
-