Class WallFollowerAgent

java.lang.Object
es.ull.mazesolver.agent.Agent
es.ull.mazesolver.agent.WallFollowerAgent
All Implemented Interfaces:
Serializable, Cloneable

public class WallFollowerAgent extends Agent
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.
See Also:
Serialized Form
  • Constructor Details

    • WallFollowerAgent

      public WallFollowerAgent(Environment env)
      Crea el agente en el entorno indicado.
      Parameters:
      env - Entorno en el que colocar el agente.
  • Method Details

    • setRotation

      public void setRotation(Rotation rot)
      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

      public Rotation getRotation()
      Obtiene la pared que sigue el agente.
      Returns:
      La pared que el agente sigue.
    • getAlgorithmName

      public String getAlgorithmName()
      Description copied from class: Agent
      Pregunta al agente el nombre del algoritmo que implementa.
      Specified by:
      getAlgorithmName in class Agent
      Returns:
      Nombre del algoritmo que implementa.
    • getAlgorithmColor

      public Color getAlgorithmColor()
      Description copied from class: Agent
      Pregunta al agente el color por defecto de los agentes de su tipo.
      Specified by:
      getAlgorithmColor in class Agent
      Returns:
      Color por defecto de los agentes que implementan ese algoritmo.
    • getNextMovement

      public Direction getNextMovement()
      Description copied from class: Agent
      Obtiene el siguiente movimiento dado el estado actual del agente.
      Specified by:
      getNextMovement in class Agent
      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 class Agent
    • getConfigurationPanel

      public AgentConfigurationPanel getConfigurationPanel()
      Description copied from class: Agent
      Obtiene el panel de configuración asociado al agente.
      Specified by:
      getConfigurationPanel in class Agent
      Returns:
      Un panel de configuración para el agente.
    • clone

      public Object clone()
      Specified by:
      clone in class Agent