El siguiente código despliega un juego de lotería donde el usuario debe adivinar un número del 1 al 10 y puede jugar las veces que desee dentro de la misma ejecución.
Este programa despliega los conceptos aprendidos de Tipos de datos, Condicionales, Ciclos, Manejo de Listas y Diccionarios:
1- Primero se crea un encabezado en el código para dejar registro de quien ha creado este código y le fecha de creación:
"""
Programa elaborado por Alejandro Riaño Velasco - JUEGO DE LOTERÍA.
16 de mayo de 2023
"""
2- Generamos unos mensajes de encabezado y bienvenida al juego:
#INICIO DEL PROGRAMA
print("*** INICIO DEL PROGRAMA ***")
mensaje01 = " BIENVENIDO AL JUEGO DE LOTERÍA “
print (”\n",mensaje01.center(50,"="))
3- Importamos la librería “random” para poder hacer uso de la función “randint()”:
import random
4- Inicializamos un diccionario para guardar los nombres del(a) jugador(a):
person = {
'name' : '',
'lastName' : '',
}
5- Le solicitamos al usuario ingresar sus nombres y apellidos y los guardamos en el diccionario:
nombreUsuario = (input('\nIngrese sus nombres: '))
apellidoUsuario = (input('Ingrese sus apellidos: '))
person['name'] = nombreUsuario
person['lastName'] = apellidoUsuario
6- Le solicitamos al usuario la cantidad de veces que desea jugar:
juegos = int(input('\nIngrese la cantidad de veces que desea jugar: '))
7- Definimos una lista que alimentaremos con la cantidad de veces que el usuario ha ingresado y le confirmamos al usuario este valor:
listaJuegos = []
for elemento in range(1, juegos+1):
listaJuegos.append(elemento)
print('\nVas a jugar ', listaJuegos[-1], ' veces')
8- Definimos un primer ciclo “for” para iterar la cantidad de veces que el usuario desea jugar e inicializar las variables de número de Lotería y la cantidad de intentos que el usuario usará en cada juego:
for juego in listaJuegos:
numeroLoteria = random.randint(1, 10) # Se usa la función randit para que asigne un valor aleatorio de 1 a 10
intentos = 0 # Inicializamos los intentos en cero
print(f'\n----- INICIO DEL JUEGO: {juego} -----')
9- Definimos un “while” anidado dentro del “for” anterior, donde se ejecutará el juego de manera indefinida el juego hasta que el usuario adivine el número de la lotería:
while True: # Se coloca el valor en Verdadero para que el ciclo Whilese ejecute de manera indefinida
10- Inicializamos una variable que funcione como bandera dentro del siguiente ciclo “while” anidado:
bandera = False # Se inicializa en falso para poder entrar en el ciclo While
11- Se define un siguiente ciclo “while” anidado, donde se evalúa que el valor que ingresa el usuario sea un valor válido entero entre 1 y 10:
while bandera == False:
numeroUsuario = input("\nAdivina el número secreto del 1 al 10: ")
bandera = numeroUsuario.isnumeric() # Se evalúa si el valor ingresado es Entero Positivo
if bandera == False:
print("\nHaz ingresado un valor incorrecto, deben ser valores enteros positivos, del 1 al 10")
elif int(numeroUsuario) >= 1andint(numeroUsuario) <= 10: # Se evalúa si el valor ingresado sea de 1 a 10
bandera = True
numeroUsuario = int(numeroUsuario) # Convierte el valor texto en entero para poder hacer operaciones matemáticas con él
else:
bandera = False
print("\nHaz ingresado un valor incorrecto, deben ser valores enteros positivos, del 1 al 10")
12- Incrementamos en 1 el valor de los intentos realizados por el usuario:
intentos += 1
13- Procedemos a realizar la evaluación del número válido ingresado por el usuario vs el valor aleatorio de lotería generado por la función “random.randint(1, 10)”:
if numeroUsuario == numeroLoteria: # Evalúa el valor ingresado por el usuario vs el que se tiene de Lotería
print("\n¡FELICIDADES! Adivinaste la LOTERÍA en", intentos, "intentos.")
break# Esta sentencia rompe el ciclo ya que el número ya fue adivinado
elif numeroUsuario > numeroLoteria: # Evalúa si el valor ingresado por el usuario es menor al que se tiene de Lotería
print("\nEl número secreto es menor que", numeroUsuario)
else: # Evalúa si el valor ingresado por el usuario es mayor al que se tiene de Lotería
print("\nEl número secreto es mayor que", numeroUsuario)
14- Procedemos a dar cierre al juego y mostramos al usuario cuantos juegos le quedan respecto al valor que él ingresó.
print(f"\n------ FIN DEL JUEGO: {juego} ------")
print("\nTe quedan ", listaJuegos[-1]-juego, " juegos.") # Hace el conteo de los juegos restantes
15- Una vez finalizados todos los juegos se sale del ciclo “for” inicial y mostramos un mensaje de despedida
print("\nMuchas gracias, vuelve pronto.")
16- Este es todo el código completo:
"""
Programa elaborado por Alejandro Riaño Velasco - JUEGO DE LOTERÍA.
16 de mayo de 2023
"""
#INICIO DEL PROGRAMA
print("*** INICIO DEL PROGRAMA ***")
mensaje01 = " BIENVENIDO AL JUEGO DE LOTERÍA "
print ("\n",mensaje01.center(50,"="))
import random # Se importa la librería de random de Python para poder usar la función de randit()'
person = {
'name' : '',
'lastName' : '',
}
nombreUsuario = (input('\nIngrese sus nombres: '))
apellidoUsuario = (input('Ingrese sus apellidos: '))
person['name'] = nombreUsuario
person['lastName'] = apellidoUsuario
juegos = int(input(f'\nBienvenido(a) {person["name"]} {person["lastName"]}.\nIngrese la cantidad de veces que desea jugar: '))
listaJuegos = []
for elemento in range(1, juegos+1):
listaJuegos.append(elemento)
print('\nVas a jugar ', listaJuegos[-1], ' veces')
for juego in listaJuegos:
numeroLoteria = random.randint(1, 10) # Se usa la función randit para que asigne un valor aleatorio de 1 a 10
intentos = 0# Inicializamos los intentos en cero
print(f'\n----- INICIO DEL JUEGO: {juego} -----')
whileTrue: # Se coloca el valor en Verdadero para que el ciclo While se ejecute de manera indefinida
bandera = False# Se inicializa en falso para poder entrar en el ciclo While
while bandera == False:
numeroUsuario = input("\nAdivina el número secreto del 1 al 10: ")
bandera = numeroUsuario.isnumeric() # Se evalúa si el valor ingresado es Entero Positivo
if bandera == False:
print("\nHaz ingresado un valor incorrecto, deben ser valores enteros positivos, del 1 al 10")
elif int(numeroUsuario) >= 1and int(numeroUsuario) <= 10: # Se evalúa si el valor ingresado sea de 1 a 10
bandera = True
numeroUsuario = int(numeroUsuario) # Convierte el valor texto en entero para poder hacer operaciones matemáticas con él
else:
bandera = False
print("\nHaz ingresado un valor incorrecto, deben ser valores enteros positivos, del 1 al 10")
intentos += 1
if numeroUsuario == numeroLoteria: # Evalúa el valor ingresado por el usuario vs el que se tiene de Lotería
print("\n¡FELICIDADES! Adivinaste la LOTERÍA en", intentos, "intentos.")
break# Esta sentencia rompe el ciclo ya que el número ya fue adivinado
elif numeroUsuario > numeroLoteria: # Evalúa si el valor ingresado por el usuario es menor al que se tiene de Lotería
print("\nEl número secreto es menor que", numeroUsuario)
else: # Evalúa si el valor ingresado por el usuario es mayor al que se tiene de Lotería
print("\nEl número secreto es mayor que", numeroUsuario)
print(f"\n------ FIN DEL JUEGO: {juego} ------")
print("\nTe quedan ", listaJuegos[-1]-juego, " juegos.") # Hace el conteo de los juegos restantes
print(f"\nMuchas gracias {person['name']} {person['lastName']}. Vuelve pronto.")
Curso de Fundamentos de Python