Examen Final#
Generala#
La generala es un juego de dados muy popular. Se utilizan 5 dados y el objetivo es obtener el máximo puntaje en once juegos diferentes. En cada turno, cada jugador puede tirar los dados hasta tres veces seguidas, intentando obtener algunos de los juegos posibles:
Doble: Se forma con dos grupos de dos dados iguales y otorga 10 puntos (por ejemplo 2-2-3-3-5).
Escalera: Se forma con una progresión de números. Hay tres posibilidades: 1-2-3-4-5 (escalera menor), 2-3-4-5-6 (escalera mayor) o 3-4-5-6-1. Otorga 20 puntos.
Full: Se forma con dos grupos de dados iguales, uno de tres y otro de dos dados. Otorga 30 puntos (por ejemplo, 4-4-4-1-1).
Póker: Se forma con cuatro dados iguales. Otorga 40 puntos.
Generala: Se forman cinco números iguales en dos o tres tiros. Otorga 50 puntos.
Generala Doble: Se forma con cinco números iguales, y otorga 100 puntos si ya se obtuvo el juego de generala en alguna otra mano.
Si alguno de los juegos anteriores sale directamente al arrojar los 5 dados, se denomina juego servido, se le añaden 5 puntos al juego que haya resultado. Por ejemplo, si la tirada es 3-3-3-6-6, es un full servido y se otorgan 35 puntos.
De no ser posible ninguno de los anteriores, el jugador puede sumar números iguales y asignarlos a los juegos del uno al seis.
Una vez que cada jugador realiza alguno de los juegos, este queda cerrado y no puede volver a obtenerlo. Por ejemplo, si un jugador ya obtuvo el Poker, y su juego es 4-4-4-4-2, podrá asignar 4+4+4+4 al juego 4, o 2 al juego 2.
El jugador arroja los cinco dados en la primer tirada. En cada una de las tres tiradas, el jugador podrá separar aquellos dados que le resulten útiles, y seguir jugando con el resto. Si la suerte le fuera desfavorable, puede no separar ningún dado y arrojar los cinco dados en la segunda y tercer tirada.
El propósito de este problema es simular el juego de la generala.
1 Un sólo jugador#
Comience simulando el juego para un sólo jugador, esto es, simule las tres tiradas de un solo jugador. El programa debe
ejecutar la primer tirada,
mostrar las caras de los dados que resulten en la tirada,
implementar una manera sencilla para que el usuario pueda seleccionar qué dados separa y cuáles volverá a arrojar
mostrar los juegos habilitados y los juegos cerrados, y el total de puntos que obtuvo hasta el presente juego.
Extra: mostrar los juegos posibles y la probabilidad de obtener cada juego.
Hints:
Utilice un generador de números random para realizar la tirada (No, no le pedimos que simule la física de cinco dados arrojados sobre una mesa…).
Use las figuras del directorio
generala
que contienen las seis caras posibles de un dado.
2 Varios jugadores#
Extienda el código para que varios jugadores puedan jugar. El programa debe
Pedir el nombre de cada jugador
Una vez definidos todos los jugadores, sortear el orden de juego.
llevar el puntaje de todos los jugadores en una tabla
mostrar la tabla de puntajes
3 Simulación#
Construya un programa que juege automáticamente, de modo tal que un usuario pueda jugar contra la computadora.