- **Finalmente se les asocia una recompensa a todas las celdas de 0, indicando así que** 
todas las celdas tienen inicialmente una recompensa nula. 

## 4.3.3.3.4. **Bucle Principal**

Tras tener preparado el entorno, el sistema comienza las interacciones con los agentes, siguiendo estos pasos: 
- **Si en un principio se quería que los agentes Good y Evil se resituasen transcurridos** 
un cierto número de interacciones y ha llegado el momento, se procede a su relocalización. 

- **Inicialmente los agentes Good y Evil dejan caer sus respectivas recompensas en la** 
celda en la que se encuentran, dejando caer el agente Good una recompensa positiva y el agente Evil una recompensa negativa. 

- **Posteriormente se crea una copia del espacio tal y como se encuentra en ese** 
preciso instante, el cual será el que se les mande a los agentes como la observación del espacio. 

- **A continuación y para cada agente:** 
o **Se entrega la recompensa de la última interacción que realizaron. En caso de** 
ser la primera interacción se le da al agente una recompensa inicial de 0. 

o **Se manda la observación actual del entorno.** 
o **Cada agente proporciona la acción que desea realizar en la iteración actual.** 
- **Una vez que todos los agentes han interactuado en la iteración actual, se actualiza** 
el estado del entorno realizando simultáneamente las acciones de todos los agentes. 

- **Ya que los agentes Good y Evil no deben poder encontrarse en la misma celda, se** 
comprueba si tras realizar el último movimiento ambos se encuentran simultáneamente en la misma celda. Si ambos se encontrasen en la misma se procede de la siguiente manera para resolver el conflicto: 
o **Si el agente Good no se movió en esta interacción, se devuelve al agente Evil** 
a la celda en la que se encontraba. 

o **Análogamente a la situación anterior, si el agente Evil no se movió se** 
devuelve al agente Good a la celda en la que se encontraba. 

o **Si ambos agentes se movieron durante la interacción, se decide** 
aleatoriamente cual de los dos agentes no se mueve en esta interacción y es devuelto a la celda en la que se encontraba. 

- **Una vez que todos los agentes han sido colocados, se les almacena, para su** 
posterior entrega en la siguiente iteración, la recompensa de la celda a la que se movieron. Dada la situación de que varios agentes acaben en la misma celda, la recompensa que esté en ésta se divide entre el número de agentes que se encuentren en dicha celda. 

- **Como último paso del bucle se actualizan las recompensas de todas las celdas,** 
dividiendo todas entre 2 y colocando una recompensa de 0 en las celdas donde se encuentre algún agente. 