Situación de aprendizaje 7. Programando el juego de adivina el número secreto
Vamos a realizar un programa donde la máquina va a generar números aleatorios y nosotros lo tenemos que adivinar. Condicionantes del programa:
- El número aleatorio deberá estar en un intervalo de 0 a 100, ambos inclusive.
- El programa no para hasta que lo acertemos
- Tenemos que dar pistas al usuario. Si el número introducido es mayor o menor que el número secreto, deberemos decírselo
- Habrá que mostrar también el mensaje de que has acertado el número
- Habrá que decirle al usuario cuántos intentos le ha costado adivinar el número
- Una vez acertado el número, habrá que preguntar al usuario si quiere seguir jugando y en caso afirmativo deberá crearse un nuevo número aleatorio
Para crear un número aleatorio tenemos la instrucción PICK RANDOM (inglés) o NÚMERO ALEATORIO ENTRE (español)
SOLUCIÓN COMENTADA
A continuación la solución al programa con una serie de aclaraciones:
- Hay que iniciar la variable RESP (variable para controlar si queremos seguir jugando o no) con un valor inicial que al menos nos permita entrar la primera vez
- Antes de comenzar a intentar adivinar el número, tendremos que resetear el contador de INTENTOS a 0
- Instrucción para generar el número aleatorio
- Resetear la variable ACERTADO a N, ya que la pondremos a S cuando hayamos acertado
- Comenzamos con los tres IF para preguntar si es mayor, menor o hemos acertado y dar información al usuario
- Poner a S la variable ACERTADO en caso de acertar, para romper el bucle de seguir intentándolo
- Sacar el mensaje al usuario para decirle cuántos intentos ha tardado en adivinar el número. Esto lo haremos al acabar el bucle anterior
Y a continuación la experiencia del juego:
PROPUESTA DE MEJORA
Introduce las siguientes mejoras al programa:
- Ofrecer solo 5 intentos para adivinar el número secreto. El programa acabará bien porque acierta el usuario o bien porque se le acaban los intentos
- Forzar al usuario a que introduzca exclusivamente S o N para seguir jugando o no
{{@5685}}