A continuación podemos ver una tabla con las funciones de la clase. 

| Funciones   | Descripción                                          |
|-------------|------------------------------------------------------|
| Action()    | Espera a recibir la acción del usuario y la devuelve |

## 4.3.1.5. **Agente Aleatorio (Subclase De Agente Evaluable)**

Dentro de los agentes evaluables también se encuentra RandomAgent**. Este agente es** 
controlado por el sistema y representa a un agente que realiza acciones dentro del espacio de forma completamente aleatoria, eligiendo en cada interacción una acción cualquiera de entre todas las posibles dentro del rango de acciones permitidas. 

Para controlar el rango de tiempo que tardará un agente aleatorio en realizar una acción, se le especifica el tiempo mínimo y máximo del que dispondrá para realizar dicha acción. Este tiempo será "virtual", de modo que el agente realmente no tardará este tiempo en realizar cada acción. 

| Atributos   | Descripción                                                    |
|-------------|----------------------------------------------------------------|
| MinimumTime | Indica el tiempo mínimo que tardará en realizar un  movimiento |
| MaximumTime | Indica el tiempo máximo que tardará en realizar un  movimiento |
| Funciones   | Descripción                                                    |
| Action()    | Devuelve la acción a realizar elegida aleatoriamente           |

A continuación podemos ver una tabla con los atributos y funciones de la clase. 

## 4.3.1.6. **Agente Observador (Subclase De Agente** Evaluable)

Al igual que el agente aleatorio, el ObserverAgent **está controlado por el sistema. A** 
diferencia del agente aleatorio, este agente puede mirar las celdas que tiene a su alrededor para decidir a cuál de ellas moverse. Para ello comprueba si están los agentes Good o *Evil* en alguna de estas celdas, en el caso de encontrar al agente *Good* **se moverá a** la celda donde éste se encuentre, de lo contrario, se moverá a cualquier otra celda adyacente siempre y cuando no se encuentre el agente *Evil* en esa celda. 