Sobre este proyecto
admin-support / others-2
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