3r Reto (CSS 2016)

Enunciado:

En este reto tendrás que crear un Shell Script algo distinto a los anteriores. En concreto, este Shell Script generará un código secreto y el usuario tendrá que averiguarlo. Para ello, el script irá dando pistas y el usuario introducirá códigos hasta que lo adivine.

Ejemplo:

Imagina que el Shell Script genera el número 8954. Evidentemente, este número no lo conoce el usuario, y la interacción por pantalla sería similar a la siguiente:

Script: A ver cuánto tardas en averiguar el código que he generado.
Usuario: 5466
Script: Has acertado 2 números, pero ninguno en la posición correcta.
Usuario: 6784
Script: Has acertado 2 números, 1 de ellos en la posición correcta.
Usuario: 9354
Script: Has acertado 3 números, 2 de ellos en la posición correcta.
Usuario: 1954
Script: Has acertado 3 números, 3 de ellos en la posición correcta.
Usuario: 8954
Script: Muy bien! Has acertado el código! Has tardado 5 intentos.

Algunas aclaraciones:

  • El código generado será de 4 dígitos numéricos.
  • La forma en la que se genere el código tendrá que ser/parecer aleatoria de cara al usuario. Es decir, el usuario no tiene que tener la sensación de que hay un patrón para generar los números. Piensa cómo puedes darle este componente de aleatoriedad. Se premiará originalidad en este aspecto.
  • En cada mensaje, el Script mostrará cuántos números son correctos y cuántos de ellos además están en la posición correcta.
  • Una vez averiguado el código, se deberá mostrar cuántos intentos ha necesitado el usuario.
  • Si el usuario no introduce 4 dígitos, se debe mostrar un mensaje de error y continuar, pero sin contar el intento.
  • Los mensajes que salen por pantalla pueden ser diferentes a los que se ven en el ejemplo.

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 un comentario

Tu dirección de correo electrónico no será publicada.