Class SARulesAgent

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

public class SARulesAgent extends Agent
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 Details

  • Constructor Details

    • SARulesAgent

      public SARulesAgent(Environment env)
      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

      public String getCode()
      Returns:
      El código fuente actualmente cargado en el agente.
    • setCode

      public void setCode(String code)
      Cambia el código fuente cargado. Se debe llamar a compileCode() 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 y false si no.
    • getCompilationErrors

      public ArrayList<String> getCompilationErrors()
      Returns:
      La lista de errores de compilación.
    • setEnvironment

      public void setEnvironment(Environment env)
      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 class Agent
      Parameters:
      env - Entorno donde colocar el agente.
    • 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.
    • doMovement

      public void doMovement(Direction dir)
      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 class Agent
      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 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.
    • hasVisited

      public boolean hasVisited(Direction dir)
      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

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