Acá encontrará un ejemplo de utilizar las funciones while, if, elif y else, si no llegas a entender considera que no sirves para el mundo de la programación.
Lo anterior es una broma, no te frustres cuando no entiendas algo, todos tenemos tiempos y formas de entender diferente a todos los demás. Ahora entremos en materia.
Primero que todo empecemos por la definición de while:
while Es una estructura de control que permite repetir un código mientras se cumpla la condición.
Un claro ejemplo de esta función es aplicarlo en un juego, personalmente lo apliqué en el clásico juego, es tan clásico que hasta los dinosaurios cuando estaban aburridos lo jugaban, el clásico juego de piedra papel o tijera.
Mi intención en este juego es brindarle al usuario una continua ejecución y que se cumplan todas las condiciones que en su naturaleza contine.
Lo primero que vamos a escribir es importar el módulo random el cual es un módulo incorporado en Python que proporciona la elección aleatoria de una de las opciones que le solicitemos al programa. Y la primera variable que escribiremos es para asignar las opciones a escoger por el usuario y la consola:
import random
option = ('piedra', 'papel', 'tijera')
La siguiente variable que se debe crear es para que el juego se repita hasta que se cumpla una condición, dicho esto, la variable se llamará keep_playing y esta variable llevará el valor de True, por lo que después la acompañaremos de un while para decirle al programa que mientras la variable sea True se siga ejecutando, esto se pone al inicio, y al final se pondrá la misma variable con el valor False, esto generará que al principio del código se ejecute cumpliendo las condiciones que escribiremos y al final el usuario decida si quiere seguir jugando o no.
<ins>Nota importante</ins>: Hay que tener muy en cuenta la identación cuando utilizamos esta estructura ya que yo por error de principiante lo cometí y estaba bloqueado, y solo era eso.
keep_playing = Truewhile keep_playing:
# Aquí va el resto del código.
play_again = input('¿Quiere seguir jugando?, por favor responda (si/no) => ')
if play_again.lower() != "si":
keep_playing = False
Entonces, que le estamos diciendo al programa con esto, que cuando finalice la ronda de juego le pregunte al usuario si quiere seguir jugando o quiere finalizar, si el usuario dice “no” finaliza el ciclo del juego y cumple la condición del False, pero si la respuesta del usuario es “si”, inicia el código nuevamente y el programa inicia el ciclo con la variable que contiene el True, por ese motivo se escribe al inicio y al final, al inicio con True y al final con False, este es como por así decirlo, el interruptor del ciclo.
Ahora para que el ciclo se cumpla se crearan las variables que contarán los puntajes, en este caso, de la consola y del usuario, entonces se escribe lo siguiente:
’’‘
Por favor tener en cuenta la identación, esta línea irá una identación a la derecha del while que contiene el keep_playing
’’’
user_wins = 0computer_wins = 0
Ahora con while le damos el siguiente ciclo al juego, lo programé para que se repitiera el ciclo hasta que uno de los dos jugadores tenga 3 victorias.
‘’‘
Todo esto dentro de la identación de while keep_playing, es decir una identación a la derecha.
’’’
while user_wins < 3and computer_wins < 3:
Con esto le decimos al programa que mientras (while) que uno de los dos contadores llegue a 3 se repita el ciclo.
Ahora dentro de este while debemos escribir el resto del código, esto quiere decir que va a tener <ins>dos identaciones a la derecha</ins>, debemos crear el input con el que el usuario escribirá su elección:
user_option = input("Por favor escriba una opción entre piedra, papel o tijera => ")
user_option = user_option.lower()
‘’‘
Con .lower le decimos al programa que no importa si el usuario escribe alguna letra en mayúscula, que la vuelva minúscula y de esta forma no generará error.
’’'
Ahora debemos agregar algo para que el usuario se dé cuenta de si escribió bien la palabra o si escribió otra palabra no válida para el correcto funcionamiento del ciclo o del juego.
ifnot user_option in option:
print("No está dentro de las opciones, por favor vuelva a escribir")
continue
Con lo anterior le decimos al programa que identifique si lo que está escribiendo el usuario está dentro de las opciones de piedra, papel o tijera, sino hacerlo saber con un mensaje y que continue ejecutando el input.
Ahora le vamos a dar al programa la posibilidad que aleatoriamente escoja una de las tres opciones de piedra, papel o tijera utilizando el random asignando la función .choice para que elija una de las opciones de option.
computer_option = random.choice(option)
Ahora le diremos al programa las condiciones para que ejecute el empate o cual de los dos jugadores obtuvo el punto, utilizando if.
if user_option == computer option:
print(f'Empate!, Usuario: {user_wins}, Consola: {computer_wins}')
En lo anterior se programa para que le avise al usuario que ubo empate y también le muestre cómo va el marcador.
Ahora veremos el uso de if, elif y else, básicamente son para asignar condiciones, se empieza con if, si esa condición no se cumple utilizamos elif (si se tienen más condiciones se puede seguir ejecutando elif, así sean 10 condiciones) y por último si ninguna de las condiciones no se cumple utilizamos else. Veamos la siguiente manera de implementarlo.
elif user_option == 'piedra':
if computer_option == 'tijera':
print('Piedra gana a tijera')
# Para incrementar el puntaje del usuario se sumará 1 punto.
user_wins += 1
print(f'Usuario ganó!, Usuario: {user_wins}, Consola: {computer_wins}')
else:
print('Papel gana a piedra')
# Para incrementar el puntaje de la consola se sumará 1 punto.
computer_wins += 1
print(f'Consola ganó!, Usuario: {user_wins}, Consola: {computer_wins}')
Ahora el reto, si lo estás escribiendo, es escribir las condiciones que falta, cuando el usuario escoge papel y la condición cuando escoge tijera.
Por último asignaremos lo que ocurre cuando finaliza la ronda.
if user_wins > computer_wins:
print(f'¡El usuario ganó la ronda! Marcador final Usuario: {user_wins}, Consola: {computer_wins}')
else:
print(f'¡La Consola ganó la ronda! Marcador final Usuario: {user_wins}, Consola:{computer_wins}')
De esta manera finalizamos un muy buen ejemplo de cómo utilizar las sentancias if, elif y else con las cuales se le da condiciones al programa y la función while que nos permite decirle al programa que mientras se cumplan las condiciones puede seguir ejecutando el programa.
El código cmpleto se encuentra en este repositorio, espero sea de gran ayuda para entender esos temas
https://github.com/NelGoIngDev/Juegos_Python/blob/main/Juego_PPT.py
Ese es el link del repositorio.