Package es.ull.mazesolver.agent
Class WallFollowerAgent
java.lang.Object
es.ull.mazesolver.agent.Agent
es.ull.mazesolver.agent.WallFollowerAgent
- All Implemented Interfaces:
Serializable
,Cloneable
Agente que implementa la funcionalidad de seguir paredes. Una vez se le
especifica una dirección (derecha o izquierda) el agente recorre el laberinto
como si pegara la mano del lado indicado en la pared y simplemente la
siguiera a lo largo de los giros necesarios hasta encontrar la salida.
Este algoritmo garantiza encontrar la salida del laberinto sólo si se trata de un laberinto perfecto, aunque el número de pasos que requerirá será mucho mayor que el de la mayoría de agentes.
Este algoritmo garantiza encontrar la salida del laberinto sólo si se trata de un laberinto perfecto, aunque el número de pasos que requerirá será mucho mayor que el de la mayoría de agentes.
- See Also:
- Serialized Form
-
Field Summary
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclone()
Pregunta al agente el color por defecto de los agentes de su tipo.Pregunta al agente el nombre del algoritmo que implementa.Obtiene el panel de configuración asociado al agente.Obtiene el siguiente movimiento dado el estado actual del agente.Obtiene la pared que sigue el agente.void
Elimina la memoria que el agente tenga sobre el entorno.void
setRotation(Rotation rot)
Indica hacia qué lado girar primero para seguir la pared.Methods inherited from class es.ull.mazesolver.agent.Agent
doMovement, equals, getAgentColor, getAgentName, getEnvironment, getPos, getX, getY, hashCode, loadFile, look, saveFile, setAgentColor, setAgentName, setEnvironment, setPosition
-
Constructor Details
-
WallFollowerAgent
Crea el agente en el entorno indicado.- Parameters:
env
- Entorno en el que colocar el agente.
-
-
Method Details
-
setRotation
Indica hacia qué lado girar primero para seguir la pared.- Parameters:
rot
- Determina la pared que seguirá el agente.Rotation.CLOCKWISE
: Sigue la pared a su derecha.Rotation.COUNTER_CLOCKWISE
: Sigue la pared a su izquierda.
-
getRotation
Obtiene la pared que sigue el agente.- Returns:
- La pared que el agente sigue.
-
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.
-
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.
-
clone
-