
## 4.3.2. **Clases Para Representar El Espacio** 4.3.2.1. **Celda**

Una celda (Cell**) representa una ubicación donde se pueden situar elementos durante** 
el transcurso de las sesiones. Dentro de cada celda se pueden situar tanto objetos como agentes. Estos agentes pueden ir cambiando de celda durante cada interacción, mientras que los objetos permanecen inmóviles en su celda durante el transcurro de la sesión. Además, cada celda contiene la recompensa que deja caer los agentes Good y *Evil* **si** alguno de estos pasa en algún momento por ésta, e irá disminuyendo su valor dividiéndose entre 2 en cada iteración. 

| Atributos    | Descripción                                                             |
|--------------|-------------------------------------------------------------------------|
| Number       | Número que identifica la celda del conjunto de  celdas                  |
| Objects      | Lista de objetos que se encuentran situados en la  celda                |
| Agents       | Lista de agentes que se encuentran situados en la  celda                |
| Reward       | Recompensa que queda en la celda                                        |
| Funciones    | Descripción                                                             |
| Clone()      | Crea una copia de la celda actual                                       |
| GetActions() | Devuelve el conjunto de acciones que se pueden  realizar desde la celda |
| Move(Action) | Devuelve la celda a la que se accede si se realizase la  acción Action  |

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

## 4.3.2.2. **Conexión**

Al igual que en la teoría de grafos, donde para pasar de un vértice a otro contiguo se debe atravesar una arista, para moverse de una celda a otra contigua se debe pasar a través de una conexión (Connection**). Cada conexión representa la acción que se debe** gastar desde la celda que la contiene para poder llegar a la celda contigua. De modo que al encontrarse en una celda donde exista una conexión representando a una acción, al utilizar esta acción se llegará a la celda con la que conecte esta conexión. 