Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

¿Cómo crear un juego de adivinar números en Python?

alojamiento python
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Ya debería haber adivinado el contenido de este artículo. Y probablemente debería estar familiarizado con adivinar números y buscar una manera de construirlo usando Python.

Aprendamos a crear un juego de adivinanzas de números desde cero.

Number Guessing Game

El juego es simple. El usuario tiene que adivinar el número generado aleatoriamente que se encuentra entre el rango de 1 a 100. Eso es.

¿Es el juego así de simple?

Sí lo es.

Pero, hay una cosa que tenemos que proporcionar a los usuarios para que adivinen el número. Eso es pistas. Tenemos que enviar un mensaje al usuario diciendo que el número adivinado actual es menor que el número correcto o que el número adivinado actual es mayor que el número correcto. Para que los usuarios sepan en qué dirección deben ir.

Podemos hacerlo más emocionante agregando características adicionales como el número máximo de oportunidades para adivinar, aumentar el rango, configurar un temporizador, etc.

Es obligatorio crear el juego de trabajo básico. Después de eso, podemos agregar más funciones como se discutió. Entonces, vamos a crear la versión básica del juego en esta sección. Y luego pasaremos a agregar nuevas funciones.

Quiero que intentes crear el juego sin copiar ciegamente el código. Entonces, voy a explicar el algoritmo primero. Le ayudará a codificarse usted mismo o comprender el código rápidamente.

Veamos el algoritmo para crear el juego de adivinanzas de números.

Algoritmo

Asegúrese de comprender el algoritmo antes de pasar a la parte de codificación.

  • Defina el rango de los números. De forma predeterminada, es 1-100, pero puede cambiarlo como prefiera.
  • Genere un número entero aleatorio del rango anterior (1-100).
  • Inicie el juego mostrando al usuario un mensaje que diga "Adivina el número de X a Y". Puede actualizar el mensaje como desee.
  • Inicializar una variable para 0 para contar el número total de oportunidades que ha tenido el usuario para adivinar el número correctamente.
  • Escribe un bucle infinito.
    • Pídale al usuario que adivine el número.
    • Si el número actual adivinado es igual al número generado aleatoriamente, felicite al usuario con un mensaje como desee. Un ejemplo sería “-> ¡Hurra! ¡Lo tienes en 5 pasos! ”.
    • Rompe el círculo después de felicitar al usuario.
    • Si el número actual adivinado es menor que el número generado aleatoriamente, envíe un mensaje al usuario diciendo "-> Tu número es menor que el número aleatorio" o un mensaje personalizado con el mismo significado.
    • Si el número actual adivinado es mayor que el número generado aleatoriamente, envíe un mensaje al usuario diciendo "-> Tu número es mayor que el número aleatorio" o una costumbre con el mismo significado.
    • Finalmente, incremente las posibilidades que el usuario ha tenido para adivinar.

Habría tenido un código en su mente después de ver el algoritmo. No se preocupe incluso si no obtiene el código completo. Pero asegúrese de comprender el algoritmo anterior.

Es hora de ponernos manos a la obra con el código. Ingrese al código sin más preámbulos.

Code

¿Intentaste escribir el código?

En caso afirmativo y completarlo. Es genial. Consulte el código y entiéndalo para agregar más perspectivas a su conocimiento.

No se preocupe incluso si no escribió el código. Vea el código a continuación y entiéndalo. Intente modificarlo y escribirlo a su manera para una mejor comprensión.

Entonces, veamos el código.

import random


class NumberGuessingGame:

    def __init__(self):
        ## define the range
        self.LOWER = 1
        self.HIGHER = 100

    ## method to generate the random number
    def get_random_number(self):
        return random.randint(self.LOWER, self.HIGHER)

    ## game start method
    def start(self):
        ## generating the random number
        random_number = self.get_random_number()

        print(
            f"Guess the randomly generated number from {self.LOWER} to {self.HIGHER}")

        ## heart of the game
        chances = 0
        while True:
            user_number = int(input("Enter the guessed number: "))
            if user_number == random_number:
                print(
                    f"-> Hurray! You got it in {chances + 1} step{'s' if chances > 1 else ''}!")
                break
            elif user_number < random_number:
                print("-> Your number is less than the random number")
            else:
                print("-> Your number is greater than the random number")
            chances += 1

## instantiating and starting the game
numberGuessingGame = NumberGuessingGame()
numberGuessingGame.start()

Hay algunas cosas que comprende del código.

  • El rango se define dentro del __init__ método para que se pueda utilizar en todos los métodos de la clase.
  • Podemos cambiarlo fácilmente en un lugar que cambia en la aplicación en consecuencia.
  • Existe un método separado para generar el número aleatorio que sigue el principio de "Separar las preocupaciones". Aquí, nuestro método tiene poco código, pero podría aumentar en el futuro.
  • Finalmente, hemos usado class para que todos los métodos relacionados con el juego residan dentro de ella. Y se puede reutilizar fácilmente en otras aplicaciones.

Todos los puntos que se comentan anteriormente están relacionados con la escritura de código limpio. Deberíamos intentar escribir el código limpio que comprenda incluso después de algunos años.

La salida de muestra del juego se ve de la siguiente manera.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100
Enter the guessed number: 50
-> Your number is less than the random number
Enter the guessed number: 75
-> Your number is less than the random number
Enter the guessed number: 90
-> Your number is greater than the random number
Enter the guessed number: 85
-> Your number is greater than the random number
Enter the guessed number: 80
-> Hurray! You got it in 5 steps!

Supongo que tienes Python instalado para probar el código anterior.

Extra Feature

Vamos a sumar el número máximo de posibilidades de que un usuario adivine el número. Si el usuario no adivina el número dentro del número de posibilidades, el usuario pierde.

¿Cómo lo agregamos?

Es un proceso simple de dos pasos. Veamos los pasos.

  • Defina el número máximo de posibilidades de que el usuario adivine el número.
  • Compruebe si el usuario tiene posibilidades o no antes de solicitar la entrada. Y finalizar el juego si el usuario no tiene oportunidades.

El siguiente código adicional completará la función.

  • Agregue el siguiente código dentro del __init__ método.
self.MAX_CHANCES = 10
  • Agregue la siguiente condición antes de que el usuario ingrese la siguiente suposición.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Ahora, prueba el juego sin adivinar el número correcto. Debería ver una salida similar a la siguiente.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100. You have 10 chances to guess.
Enter the guessed number: 1
-> Your number is less than the random number
Enter the guessed number: 2
-> Your number is less than the random number
Enter the guessed number: 3
-> Your number is less than the random number
Enter the guessed number: 4
-> Your number is less than the random number
Enter the guessed number: 5
-> Your number is less than the random number
Enter the guessed number: 6
-> Your number is less than the random number
Enter the guessed number: 7
-> Your number is less than the random number
Enter the guessed number: 8
-> Your number is less than the random number
Enter the guessed number: 9
-> Your number is less than the random number
Enter the guessed number: 10
-> Your number is less than the random number
-> Phew! You lost the game. You are out of chances

¡Viva! hemos agregado una característica adicional a nuestro juego. Sin embargo, no es el final. Puede agregar algunas funciones más para que sea más atractivo para los usuarios. Ahora es tu momento. Adelante, hazlo más bonito :).

Conclusión

Hemos creado un sencillo juego de adivinanzas de números. Ahora es tu turno de pensar en los juegos que jugabas cuando eras joven. Hazlos usando lenguaje de programación y comparte con tus amigos. Podemos digitalizar la mayoría de los juegos de nuestra infancia.

A continuación, explora Python IDE y compilador en línea para ejecutar código Python.

Codificación feliz 🙂

Si no te cansas de los juegos de palabras virales, aquí tienes cómo hacerlo mejor en Wordle.

Gracias a nuestros patrocinadores
Más lecturas interesantes sobre el desarrollo
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder