El juego de adivinanzas de números se trata de adivinar el número elegido al azar por la computadora en un número determinado de oportunidades.
Funciones a utilizar:
- rand n : Esta función solía generar un número aleatorio entre 0 y n. Y esta función siempre devuelve el número de coma flotante. Entonces su resultado se convierte a un valor entero explícitamente.
- Chomp() : esta función se usa para eliminar el carácter de nueva línea de la entrada del usuario.
Explicación:
En el programa, el bucle while se ejecuta hasta que el número adivinado por el usuario es igual al número generado o el número de intentos es menor que el número máximo de posibilidades. Si el número de intentos es mayor que el número de oportunidades, el juego se detiene y el usuario pierde el juego. Si el usuario adivina el número correcto en un número determinado de oportunidades, entonces él o ella ganará. Después de cada suposición hecha por el usuario, el programa informa al usuario si el número adivinado era menor o mayor que el número generado real.
En este código, inicialmente, la función rand elige un número aleatorio como x. La función (rand k) encuentra un número aleatorio entre 0 y k. Como este número aleatorio es un número de coma flotante, entonces «int»se utiliza para convertirlo explícitamente a un número entero. x almacena el número entero. Al usuario se le da un número específico de oportunidades para adivinar el número si las posibilidades exceden las que el usuario adivina que el usuario perdería.
A continuación se muestra la implementación:
# Number Guessing Game implementation # using Perl Programming print "Number guessing game\n"; # rand function to generate the # random number b/w 0 to 10 # which is converted to integer # and store to the variable "x" $x = int rand 10; # variable to count the correct # number of chances $correct = 0; # number of chances to be given # to the user to guess number # the number or it is the of # inputs given by user into # input box here number of # chances are 4 $chances = 4; $n = 0; print "Guess a number (between 0 and 10): \n"; # while loop containing variable n # which is used as counter value # variable chance while($n < $chances) { # Enter a number between 0 to 10 # Extract the number from input # and remove newline character chomp($userinput = <STDIN>); # To check whether user provide # any input or not if($userinput != "blank") { # Compare the user entered number # with the number to be guessed if($x == $userinput) { # if number entered by user # is same as the generated # number by rand function then # break from loop using loop # control statement "last" $correct = 1; last; } # Check if the user entered # number is smaller than # the generated number elsif($x > $userinput) { print "Your guess was too low,"; print " guess a higher number than ${userinput}\n"; } # The user entered number is # greater than the generated # number else { print "Your guess was too high,"; print " guess a lower number than ${userinput}\n"; } # Number of chances given # to user increases by one $n++; } else { $chances--; } } # Check whether the user # guessed the correct number if($correct == 1) { print "You Guessed Correct!"; print " The number was $x"; } else { print "It was actually ${x}."; }
Entradas:
5 6 8 9
Producción:
Number guessing game Guess a number (between 0 and 10): Your guess was too low, guess a higher number than 5 Your guess was too low, guess a higher number than 6 Your guess was too low, guess a higher number than 8 You Guessed Correct! The number was 9
Nota: En el programa anterior, el usuario puede modificar el valor de la función rand para aumentar el rango de números en este juego y también puede aumentar el número de posibilidades al aumentar el valor de la variable de probabilidad.
Publicación traducida automáticamente
Artículo escrito por SrijaPandey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA