Evaluando propuestas

Tp para facultad urgente

Publicado el 05 Noviembre, 2020 en Soporte Administrativo

Sobre este proyecto

Abierto

Bolos.
Se trata de un proceso bolera y otro jugadores con varios hilos (uno por cada jugador).
Utiliza cola de mensajes con los siguientes IDs.



MSG_NADIE            0
MSG_BOLERA            1
MSG_JUGADOR        2(+nro_JUGADOR)

EVT_NINGUNO        0    
EVT_INICIO            1
EVT_TIRO            2
EVT_RESULTADO        3
EVT_FIN            4

Proceso BOLERA: (MSG_ BOLERA)
Hilo Principal (main):
1-    La cantidad de jugadores es siempre 2.
2-    Borrar los mensajes anteriores, para empezar de 0.
3-    Inicializa un vector local de dos posiciones, una por cada línea de bolos que le corresponde a cada jugador.  Ambas posiciones se inicializan con la cantidad de 10 pinos.
4-    Le envía un mensaje a cada JUGADOR, EVT_INICIO.
(MSG_JUGADOR+i).
5-    Espera recibir mensajes de los JUGADORES.
Si recibe EVT_TIRO.

-    Define al azar los pinos tirados del 1 hasta la cantidad de pinos disponibles (cuidado utilizar la línea correcta dependiendo del jugador)
-    Actualiza el vector con la posición correcta con la cantidad de pinos en pie.
-    Si tiro todos los pinos de una vez, muestra la leyenda “CHUZA”.
-    Devuelve la cantidad de pinos tirados al jugador con el EVT_RESULTADO, cantidad_de_pinos.

-    Si tiro todos los pinos o ya recibió 3 tiros de ese jugador envía el EVT_FIN al jugador correspondiente (esto lo hace en lugar de EVT_RESULTADO) con la cantidad de puntos obtenidos (1 por cada pino tirado y 20 si los tiro todos de una).
    6-    Se terminaron de tirar los 2 jugadores (o bien tiraron todos los pinos o tiran 3 veces) finaliza.                 7-    Caso contrario, repite desde el punto 5.


Proceso JUGADORES:
El hilo principal (main):
La cantidad de jugadores es siempre 2.
Lanza tantos HiloJUGADOR como JUGADORES haya.
Se queda esperando que terminen los hilos.

Muestra el puntaje de cada jugador e indica quien gano por pantalla (recibido de los hilos).

HiloJUGADOR (uno por JUGADOR): (MSG_JUGADOR+nro_JUGADOR)
1-    Espera recibir el EVT_INICIO.
2-    Escribir por pantalla, “Soy el jugador N y voy a tirar“
3-    Envía al BOLERA el EVT_TIRO
4-    Espera recibir el EVT_RESULTADO o EVT_FIN
5-    Muestra por pantalla los bolos tirados “Soy el jugador N y tire X bolos”
6-    Espera 300ms y vuelve a tirar.
7-    Se recibe el EVT_FIN termina el hilo devolviendo los puntos obtenidos.

8-    Muestra por pantalla los puntos obtenidos.

Utilizar Makefile con la estructura de archivos vista en clases.




Condición de corrección: (Si no cumple lo siguiente NO se corrige)
El programa debe compilar sin errores.
El programa debe correr sin errores de memoria.

Debe estar correctamente identado.
Utilizar CONSTANTES.

Puntos a tener en cuenta:
Los nombres de las variables deben ser descriptivos de su función.
Comenten todo lo posible el código.
Toda variable o arreglo definido en forma dinámica debe ser liberado al finalizar el programa.

Categoría Soporte Administrativo
Subcategoría Otros
Tamaño del proyecto Pequeño
¿Es un proyecto o una posición? Un proyecto
Disponibilidad requerida Según se necesite

Plazo de Entrega: No definido

Habilidades necesarias