3er Reto (SSC 2018)

Enunciado:
En este reto, vamos a apostar a la carta más alta contra el ordenador. Para ello, deberás crear un Shell Script que permita un juego entre el jugador y el ordenador (que ejerce de crupier).
Al inicio del juego, se pregunta el nombre del jugador y un saldo de dinero disponible. A partir de aquí, empieza una partida.
La dinámica para jugar una partida es la siguiente:

  1. El jugador hace una apuesta inicial de 1 unidad.
  2. El crupier se queda con tres cartas que están ocultas y reparte otras tres al jugador, que se muestran por pantalla. En este momento, tanto el crupier como el jugador conocen las 3 cartas del jugador.
  3. Se le pregunta al jugador si desea continuar, para lo que tendrá que incrementar su apuesta con la cantidad que quiera a partir de 1 unidad (por ejemplo, si ha recibido 3 cartas altas, lo lógico será continuar, mientras que si ha recibido 3 bajas, es posible que decida retirarse).
  4. Si el jugador se retira, pierde el jugador.
  5. Si el jugador continua, el crupier descarta dos de sus tres cartas y preguntará al jugador si desea continuar, para lo que tendrá que doblar su apuesta actual. En este punto, tanto el crupier como el jugador conocen también dos de las tres cartas del crupier.
  6. Si el jugador se retira, pierde el jugador.
  7. Si el jugador continua, el crupier debe decidir si se retira o continua, atendiendo a las 3 cartas que conoce del jugador y las 2 suyas que ya conoce.
  8. Si el crupier se retira, pierde el crupier.
  9. Si el crupier continua, se descarta la tercera carta que queda, ganando aquel de los dos cuya puntuación de la suma de sus 3 cartas sea la mayor. Si tienen la misma puntuación, se considera empate.

Cuando termina una partida, se le preguntará al jugador si quiere jugar otra más, siempre y cuando tenga saldo. El juego terminará cuando el jugador ya no quiera jugar más partidas o cuando ya no tenga saldo para una partida más.
Al final del juego, se mostrará un listado de las partidas jugadas, quién ha ganado cada una y cuánto, así como el total del saldo ganado o perdido.
Algunas aclaraciones:

  • Asumimos que tenemos cartas numeradas del 1 al 12. No hace falta considerar palos, pero si se hace, se valorará.
  • No hace falta controlar si se descartan más de 4 cartas del mismo número, pero si se hace, se valorará. Por ejemplo, es posible que en el proceso de descarte haya 6 cartas del mismo número, cuando en realidad, si tenemos 4 palos, no podrían haber más de 4.
  • Si el jugador apuesta por ejemplo, 10 unidades y pierde, se restarían 10 unidades de su saldo, mientras que si gana, se sumarían 10 unidades.
  • Cada carta puntúa su valor numérico.
  • El jugador no podrá apostar más dinero del que tiene disponible. Como máximo, podrá apostar lo que le quede de saldo para poder terminar la partida.
  • Si en el punto 5 el jugador no tiene suficiente saldo para doblar, se apostará todo lo que le quede de saldo para continuar la partida.
  • En el punto 7, el script debe tener algún sistema que le permita decidir si continúa o no en función de las cartas que haya.

Se valorará en la corrección:

  • La creatividad en la comunicación con el jugador
  • La representación de la información
  • El sistema de decisión del punto 7
  • El suspense en el reparto de las cartas
  • La corrección (ausencia de errores) del script entregado
  • La proximidad a la funcionalidad del juego descrito

Importante:

  • Cuando termines, deberás enviar un único fichero con extensión «.sh» a través del siguiente enlace Envío de scripts.

  • No pongas tu nombre dentro del fichero, puesto que se realizará una revisión a ciegas.

 

Deja una respuesta