Ya debería haber adivinado el contenido de este artículo. Y probablemente debería estar familiarizado con la adivinación de números y buscar una forma de construirla utilizando Python.
Aprendamos a crear un juego de adivinar números desde cero.
Juego de adivinar números
El juego es sencillo. El usuario tiene que adivinar el número generado aleatoriamente que se encuentra entre el rango de 1 a 100. Eso es todo.
¿Tan sencillo es el juego?
Sí, lo es.
Pero, hay una cosa que tenemos que proporcionar a los usuarios para que adivinen el número. Son las pistas. Tenemos que proporcionar 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. Así los usuarios sabrán en qué dirección tienen que ir.
Podemos hacerlo más emocionante añadiendo características adicionales como un número máximo de oportunidades para adivinar, aumentar el rango, establecer un temporizador, etc..,
Crear el juego básico que funcione es obligatorio. Después de él, podemos añadir más características según lo discutido. Por lo tanto, vamos a crear la versión básica del juego en esta sección. Y luego pasaremos a añadir nuevas características.
Quiero que intente crear el juego sin copiar ciegamente el código. Por lo tanto, voy a explicar primero el algoritmo. Le ayudará a codificar usted mismo o a entender el código rápidamente.
Veamos el algoritmo para crear el juego de adivinar números.
Algoritmo
Asegúrese de que entiende el algoritmo antes de pasar a la parte de codificación.
- Defina el rango de los números. Por defecto, es 1-100 pero puede cambiarlo como prefiera.
- Genere un número entero aleatorio a partir 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 prefiera.
- Inicialice una variable a
0
para contar el número total de oportunidades que ha tenido el usuario para adivinar el número correctamente. - Escriba un bucle infinito.
- Pida al usuario que adivine el número.
- Si el número adivinado es igual al número generado aleatoriamente, felicite al usuario con un mensaje a su gusto. Un ejemplo sería «-> ¡Hurra! Lo has conseguido en 5 pasos!».
- Rompa el bucle después de felicitar al usuario.
- Si el número adivinado actual es menor que el número generado aleatoriamente , entonces dé un mensaje al usuario diciendo «-> Su número es menor que el número aleatorio » o un mensaje personalizado que tenga el mismo significado.
- Si el número adivinado actual es mayor que el número generado aleatoriamente, entonces dé un mensaje al usuario diciendo «-> Su número es mayor que el número aleatorio» o un mensaje personalizado con el mismo significado.
- Por último, incremente las posibilidades que el usuario ha tenido de adivinar.
Después de ver el algoritmo se le habrá ocurrido un código. No se preocupe aunque no consiga el código completo. Pero, asegúrese de que entiende el algoritmo anterior.
Es hora de ponerse manos a la obra con el código. Entre en el código sin más preámbulos.
Código
¿Ha intentado escribir el código?
Si es así y lo ha completado. Es estupendo. Compruebe el código y compréndalo para añadir más perspectivas a sus conocimientos.
No se preocupe aunque no haya escrito el código. Vea el siguiente código y compréndalo. Intente modificarlo y escribirlo a su manera para comprenderlo mejor.
Veamos el código.
importar aleatorio
clase NumberGuessingGame:
def __init__(self):
## definir el rango
self.INFERIOR = 1
self.MAYOR = 100
## método para generar el número aleatorio
def obtener_número_aleatorio(self):
return random.randint(self.LOWER, self.HIGHER)
## método de inicio del juego
def start(self):
## generar el número aleatorio
número_aleatorio = self.get_random_number()
print(
f "Adivina el número generado aleatoriamente de {self.INFERIOR} a {self.SUPERIOR}")
## corazón del juego
posibilidades = 0
while Verdadero
número_usuario = int(input("Introduzca el número adivinado: "))
si número_usuario == número_aleatorio
print(
f"-> ¡Hurra! Lo ha acertado en {casualidades 1} paso{'s' si casualidades > 1 si no ''}!")
break
elif número_usuario < número_aleatorio:
print("-> Su número es menor que el número aleatorio")
si no
print("-> Su número es mayor que el número aleatorio")
posibilidades = 1
## instanciar e iniciar el juego
numberGuessingGame = NumberGuessingGame()
numberGuessingGame.start()
Hay algunas cosas que se entienden a partir del código.
- El rango se define dentro del método
__init__
para que pueda ser utilizado a través de los métodos de la clase. - Podemos cambiarlo fácilmente en un lugar que cambia a través de la aplicación en consecuencia.
- Hay 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.
- Por último, hemos utilizado una clase para que todos los métodos relacionados con el juego residan dentro de ella. Y puede reutilizarse fácilmente en otras aplicaciones.
Todos los puntos que se han discutido anteriormente están relacionados con la escritura de código limpio. Debemos intentar escribir el código limpio que usted entiende incluso después de algunos X años .
La salida de muestra del juego tiene el siguiente aspecto.
$ python número_adivinando_juego.py
Adivine el número generado aleatoriamente del 1 al 100
Introduzca el número adivinado: 50
-> Su número es menor que el número generado aleatoriamente
Introduzca el número adivinado: 75
-> Su número es menor que el número aleatorio
Introduzca el número adivinado: 90
-> Su número es mayor que el número aleatorio
Introduzca el número adivinado: 85
-> Su número es mayor que el número aleatorio
Introduzca el número adivinado: 80
-> ¡Hurra! ¡Lo ha conseguido en 5 pasos!
Supongo que tiene instalado Python para probar el código anterior.
Característica extra
Vamos a añadir el número máximo de oportunidades que tiene un usuario para adivinar el número. Si el usuario no adivina el número dentro del número de oportunidades, entonces el usuario pierde.
¿Cómo lo añadimos?
Es un sencillo proceso de dos pasos. Veamos los pasos.
- Defina el número máximo de oportunidades que tiene el usuario para adivinar el número.
- Compruebe si el usuario tiene posibilidades o no antes de pedir la entrada. Y finalice el juego si el usuario se queda sin las oportunidades dadas.
El siguiente código adicional completará la función.
- Añada el siguiente código dentro del método
__init__
.
self.MAX_CHANCES = 10
- Añada la siguiente condición antes de que el usuario introduzca la siguiente suposición.
if chances == self.MAX_CHANCES:
print("-> ¡Uf! Ha perdido el juego. Se le han acabado las posibilidades")
Ahora, pruebe el juego sin adivinar el número correcto. Debería ver una salida similar a la siguiente
$ python número_adivinando_juego.py
Adivine el número generado aleatoriamente del 1 al 100. Tiene 10 oportunidades para adivinarlo.
Introduzca el número adivinado: 1
-> Su número es menor que el número aleatorio
Introduzca el número adivinado: 2
-> Su número es menor que el número aleatorio
Introduzca el número adivinado: 3
-> Su número es menor que el número aleatorio
Introduzca el número adivinado: 4
-> Su número es menor que el número aleatorio
Introduzca el número adivinado: 5
-> Su número es menor que el número aleatorio
Introduzca el número adivinado: 6
-> Su número es menor que el número aleatorio
Introduzca el número adivinado: 7
-> Su número es menor que el número aleatorio
Introduzca el número adivinado: 8
-> Su número es menor que el número aleatorio
Introduzca el número adivinado: 9
-> Su número es menor que el número aleatorio
Introduzca el número adivinado: 10
-> Su número es menor que el número aleatorio
-> ¡Uf! Ha perdido el juego. Se ha quedado sin posibilidades
Hurra! hemos añadido una función extra a nuestro juego. Aunque no es el final. Puede añadir algunas características más para hacerlo más atractivo para los usuarios. Ahora es su momento. Adelante y hágalo más bonito :).
Conclusión
Hemos creado un sencillo juego de adivinar números. Ahora, es tu turno de pensar en juegos a los que jugabas cuando eras joven. Realícelos utilizando el lenguaje de programación y compártalos con sus amigos. Podemos digitalizar la mayoría de los juegos de nuestra infancia.
A continuación, explore el IDE de Python y el compilador en línea para ejecutar código Python.
Feliz codificación 🙂
Si no se cansa de los juegos de palabras virales, aquí tiene cómo hacerlo mejor en Wordle.