# data[].attributes.headline
Aclaración sobre la carga de papeles de los robots decoradores

# data[].attributes.subject
Aclaración sobre la carga de papeles de los robots decoradores

# data[].attributes.body
Antes de ejecutar el programa, se debe cargar las esquinas en las que inician los decoradores(10,4)(12,4) con una cantidad cualquiera de papeles para que luego puedan depositarlos en la avenida 100.

# data[].attributes.headline
[AUDIO]  ¿Como resolvimos la probabilidad de colisión en ambos tipos de robots?

# data[].attributes.subject
[AUDIO]  ¿Como resolvimos la probabilidad de colisión en ambos tipos de robots?

# data[].attributes.body
Primero inicializamos la variable estado en V para ser enviada luego a los robots decoradores.
Recibimos los mensajes de ambos robots limpiadores, en cualquier orden. En dichos mensajes vamos
a obtener la cantidad de flores que limpiaron cada robot.
Realizamos la suma de todas las flores e informamos.
Luego enviamos los mensajes a los robots decoradores para que comiencen a trabajar.
Dentro de un repetir 2 vamos a:

1. Recibir la variable quienSos de cualquiera de los dos robots decoradores

2. Preguntar si quienSos es 1 o 2, y dependiendo de la respuesta guardaremos, en su respectiva variable, la cantidad de flores que utilizaron para decorar.

Una vez finalizado el repetir, vamos a calcular el máximo de las cantidades recibidas anteriormente.
Por último, informamos el robot que depositó más flores

# data[].attributes.body
Primero iniciamos las variables cantF y quienSoy (0 y 1 ó 2 respectivamente).

Cada robot decorador va a estar esperando a recibir un mensaje del robotJ que, al recibirlo, va a poder comenzar a trabajar.

Si hay papeles en la esquina donde se encuentra al iniciar el programa, las toma todas.

Llamamos al proceso decorar y al mismo le enviamos la variable CantF donde vamos a estar contando la cantidad de flores que utilizó para decorar.

proceso decorar:

Primero almacenamos la posición original.

Luego se bloquea la esquina (1,50) y nos trasladamos a ella para poder tomar una flor allí.

Dentro de un mientras (HayFlorEnLaEsquina):

1. Se le asigna al robot una esquina random y se traslada a ella después de bloquearla. Una vez en la esquina asignada, se libera la esquina (1,50)

2. El robot deposita una flor en la esquina random y sumamos +1 en la variable cantF.

3. Si tenemos papeles en la bolsa, deposita un solo papel.

4. Se traslada a la posición original (guardada al principio)

5. Se bloquea la esquina (1,50) y nos trasladamos a ella, nuevamente.

6. Se libera la esquina random que fue asignada anteriormente.

Al finalizar el mientras(HayFlorEnLaEsquina) nos trasladamos a la posición original y liberamos la esquina (1,50)

💡Aclaración 1 💡 : cuando hablamos de posición original nos referimos a la posición anterior a trasladarse a (1,50)

Una vez finalizado el proceso, se envia mediante EnviarMensaje() la variable quienSoy y cantF al robotJefe.

💡Aclaración 2 💡 : declaramos dos robots decoradores por separado debido a que necesitamos diferenciar un robot del otro para luego poder calcular qué robot decoró con más flores.

# data[].attributes.body
Primero creamos un proceso llamado "Limpiador" el cual recibe un parámetro de Entrada/Salida que se encarga de contabilizar la cantidad de flores que recoge el robot. La función principal de este proceso es entrar a una esquina y recoger todas las flores que haya en la misma.
Lo primero que hace es guardar la posición inicial en 2  variables para volver una vez terminada la instrucción repetir, la cual tiene que ser usada 10 veces. Una vez dentro de la instrucción obtenemos 2 números aleatorios dentro de un rango delimitado que definan la avenida y la calle a acceder. El robot bloquea esa esquina para que nadie mas entre cuando él se va a dirigir hacia allí y se mueve a esa dirección. Toma todas las flores que se encuentran en esa dirección y a su vez incrementa en 1 la variable pasada por parámetro por cada flor que recoge. Vuelve a la posición original y libera la esquina donde recogió las flores.

Luego creamos un proceso llamado "Robot" que se encarga de ir a la esquina (1,50) a depositar las flores.
Recibe un parámetro de Entrada/Salida que luego será utilizado en el proceso "Limpiador".
Primero guarda la posición inicial para volver una vez realizada la tarea. Después llama al proceso "Limpiador" y le pasa la variable recibida por parámetro. Una vez salga de ese proceso, bloquea la esquina (1,50) y se posiciona allí para depositar todas las flores que tenga en la bolsa. Cuando termina vuelve a su posición inicial y libera la esquina (1,50).

En la zona de Robots declaramos un robot llamado tipo1, el cual se encarga de iniciar la variable cant en 0. Llama al proceso "Robot" y le pasa la variable cant. Una vez finalizada la tarea del proceso el robot un mensaje al "Jefe" con la cantidad de flores que recogió.

Decimos declarar un solo tipo de robot ya que ambos cumplen la misma función. En la zona de variables declaramos 2 robots llamado "robot1" y "robot2" los cuales son de tipo1.

# data[].attributes.body
areas
areaL: AreaC(5,5,60,30)  La declaramos como área compartida ya que ambos robots limpiadores deben ingresar a esquinas aleatorias y pueden coincidir al mismo tiempo en el área.
areaF: AreaPC(1,50,1,50)  Es parcialmente compartida porque todos los robots, a excepción del juez, deben accederla, pero nunca al mismo tiempo.
areaD: AreaC(1,100,100,100) Es compartida porque debe ser accedida por los robots decoradores de manera aleatoria.
areaL1: AreaP(6,4,6,4)
areaL2: AreaP(8,4,8,4)
areaD1: AreaP(10,4,10,4)
areaD2: AreaP(12,4,12,4)
areaJ: AreaP(1,1,1,1)
Esquinas privadas para el inicio de cada robot