Class Environment
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JInternalFrame
com.tomtessier.scrollabledesktop.BaseInternalFrame
es.ull.mazesolver.gui.environment.Environment
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,RootPaneContainer
,WindowConstants
public class Environment
extends com.tomtessier.scrollabledesktop.BaseInternalFrame
Una instancia de esta clase representa un entorno de ejecución, formado por
un laberinto y por un conjunto de agentes.
- See Also:
- Serialized Form
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JInternalFrame
JInternalFrame.AccessibleJInternalFrame, JInternalFrame.JDesktopIcon
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Fields inherited from class javax.swing.JInternalFrame
closable, CONTENT_PANE_PROPERTY, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_PROPERTY
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
-
Constructor Summary
ConstructorsConstructorDescriptionEnvironment(Maze maze)
Constructor para las clases de tipo entorno.Environment(Maze maze, String name)
Constructor para las clases de tipo entorno. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Añade un agente al entorno.boolean
getAgent(int index)
Extrae una referencia a un agente del entorno.int
Obtiene el número de agentes que se encuentran en el entorno.Extrae una copia profunda de la lista de agentes que hay dentro del entorno.Obtiene el gestor de pizarras del entorno.Extrae una referencia al agente dentro del entorno que tiene el cursor situado encima.static int
getMaze()
Obtiene el laberinto contenido en el entorno.Obtiene el gestor de mensajes del entorno.Extrae una referencia al agente seleccionado dentro del entorno.int
hashCode()
Este método permite saber lo que puede ver un agente si mira en una dirección específica.boolean
movementAllowed(Point pos, Direction dir)
Indica si a partir de una posición, el movimiento hacia una determinada posición es posible o no.void
removeAgent(Agent ag)
Elimina un agente del entorno.boolean
runStep(SimulationResults results)
Ejecuta un paso de la simulación de ejecución de los agentes en el entorno y devuelve el resultado de la ejecución.void
setEnvName(String name)
Cambia el nombre del entorno.void
Cambia el modo de interacción con el entorno.void
Cambia el laberinto del entorno.void
Actualiza el tamaño de la ventana con respecto al tamaño de su contenido, que es la representación del entorno.Methods inherited from class com.tomtessier.scrollabledesktop.BaseInternalFrame
addNotify, getAssociatedButton, getAssociatedMenuButton, getInitialDimensions, selectFrameAndAssociatedButtons, setAssociatedButton, setAssociatedMenuButton, toString
Methods inherited from class javax.swing.JInternalFrame
addImpl, addInternalFrameListener, createRootPane, dispose, doDefaultCloseAction, fireInternalFrameEvent, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getJMenuBar, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paintComponent, paramString, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setTitle, setUI, show, toBack, toFront, updateUI
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTree
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Constructor Details
-
Environment
Constructor para las clases de tipo entorno.- Parameters:
maze
- Laberinto en el que se basa el entorno. Puede ser compartido entre varios entornos.name
- Nombre del entorno.
-
Environment
Constructor para las clases de tipo entorno.- Parameters:
maze
- Laberinto en el que se basa el entorno. Puede ser compartido entre varios entornos.
-
-
Method Details
-
setEnvName
Cambia el nombre del entorno.- Parameters:
name
- Nuevo nombre del entorno.
-
getEnvName
- Returns:
- El nombre del entorno.
-
setInteractionMode
Cambia el modo de interacción con el entorno.- Parameters:
mode
- Nuevo modo de interacción con el entorno.
-
getMaze
Obtiene el laberinto contenido en el entorno.- Returns:
- Laberinto base del entorno.
-
setMaze
Cambia el laberinto del entorno.
Esta operación invalidaría la memoria almacenada del/los agentes en caso de que éstos contuvieran información sobre la ruta a llevar a cabo en el entorno, pero no cuando la memoria fuera un conjunto de reglas o una tabla de percepción-acción o cuando el agente no tuviera ninguna memoria.- Parameters:
maze
- Laberinto en el que se basa el entorno.
-
updateSize
public void updateSize()Actualiza el tamaño de la ventana con respecto al tamaño de su contenido, que es la representación del entorno. -
look
Este método permite saber lo que puede ver un agente si mira en una dirección específica. La versión en la clase principal no maneja agentes, por lo que debe ser sobrecargada para gestionarlos.- Parameters:
pos
- Posición desde la que mirar.dir
- Dirección hacia la que mirar.- Returns:
- Lo que vería un agente en la posición especificada si mirara hacia la dirección indicada.
-
movementAllowed
Indica si a partir de una posición, el movimiento hacia una determinada posición es posible o no.- Parameters:
pos
- Posición de partida.dir
- Dirección de movimiento.- Returns:
- true si se puede y false si no.
-
addAgent
Añade un agente al entorno.- Parameters:
ag
- Agente que se quiere añadir al entorno.
-
removeAgent
Elimina un agente del entorno.- Parameters:
ag
- Referencia al agente que se quiere eliminar.
-
getSelectedAgent
Extrae una referencia al agente seleccionado dentro del entorno.- Returns:
- Agente seleccionado actualmente en el entorno o null si no hay ninguno seleccionado.
-
getHoveredAgent
Extrae una referencia al agente dentro del entorno que tiene el cursor situado encima.- Returns:
- Agente sobre el que se tiene el cursor actualmente en el entorno o null si el cursor no está encima de ningún agente.
-
getAgent
Extrae una referencia a un agente del entorno.- Parameters:
index
- Índice del agente que se quiere consultar.- Returns:
- Agente número 'index' dentro del entorno.
-
getAgents
Extrae una copia profunda de la lista de agentes que hay dentro del entorno. Hay que tener en cuenta que cualquier modificación en esta lista no va a tener ninguna repercusión en los agentes o el entorno original.- Returns:
- Copia de la lista de agentes dentro del entorno.
-
getAgentCount
public int getAgentCount()Obtiene el número de agentes que se encuentran en el entorno.- Returns:
- Número de agentes actualmente en el entorno.
-
getBlackboardManager
Obtiene el gestor de pizarras del entorno.- Returns:
- El gestor de pizarras del entorno.
-
getMessageManager
Obtiene el gestor de mensajes del entorno.- Returns:
- El gestor de mensajes del entorno.
-
runStep
Ejecuta un paso de la simulación de ejecución de los agentes en el entorno y devuelve el resultado de la ejecución.- Parameters:
results
- Objeto que representa el resultado de la simulación, que será actualizado en este método para notificar de agentes que han llegado a la salida y para contar los pasos que han dado.- Returns:
- true si todos los agentes han salido del laberinto y false en otro caso.
-
getInstancesCreated
public static int getInstancesCreated()- Returns:
- El número de instancias de la clase que han sido creadas.
-
equals
-
hashCode
public int hashCode()
-