1

Piedra, papel, o tijera, en Python, con "for - in"

Bueno, vamos a crear un juego de piedra papel o tijera, que juegue 3 partidas seguidas con el código “for - in”. Queremos que el “usuario” pueda escoger su opción cada vez, y también queremos que la computadora haga su propia elección. Para poder utilizar el comando “random” que nos ayudará a que haya una elección aleatoria, debemos comenzar de la siguiente forma:

<import random>

Ahora que hemos traído este código, podremos usarlo más adelante. Lo siguiente será establecer las opciones de nuestro juego, pues con base en esas opciones se hará el desarrollo de todo lo demás.

<options = ("piedra", "papel, "tijera")>

Una vez tenemos nuestras opciones, debemos introducir el código “for - in” para asegurarnos de que en adelante todo lo que ocurra se repetirá las 3 veces que necesitamos, así que lo abrimos de la siguiente forma:

<for game in range(3):>

Ya tenemos establecido un rango para 3 partidas, y tenemos en código “for” para nuestro juego, “game”. A continuación utilizaremos el comando “input()” para poder asegurarnos de el usuario podrá escoger su opción:

<user_option = input("Elige Piedra, Papel o Tijera: ").lower()>

Utilizamos “lower()” porque queremos asegurarnos de que todo lo que el usuario escriba esté en minúscula. Como queremos asegurarnos de que lo que el usuario va a escribir está entre las opciones únicas, utilizaremos el siguiente comando para que si escribe algo distinto, no nos genere un error sino que pueda reescribir su opción:

<if user_option notin options:
       print("Opción no válida.")
       user_option = input("Elige Piedra, Papel o Tijera: ")>

Si el “usuario” inserta una opción que no está entre las posibilidades, le saldrá un mensaje que le diga que no fue una opción válida y nuevamente le pedirá que escriba una opción de las posibilidades. Una vez establecido esto, podemos pasar a escribir cual será la opción de la computadora, y para ello utilizaremos el código de la siguiente manera:

<computer_option = random.choice(options)
    print("La computadora elige =>", computer_option)>

De esta manera la computadora tomará una opción aleatoria, por el comando “random.choice()” que mencionamos al inicio. Aquí es cuando lo utilizamos para que la computadora haga su propia selección aleatoria, y al mismo tiempo utilizamos un “print” para que podamos ver que fue lo que la computadora escogió.
¡Muy bien! A partir de ahora, sólo nos queda construir los posibles resultados con los que determinaremos quien gana, y con que objeto ganó. Para ello la primera posibilidad a descartar será un empate, y lo haremos utilizando todo el comando “if”:

<if user_option == computer_option:
      print("Es un empate, el usuario tiene", user_option, "y la computadora tiene", computer_option)>

Aquí hemos determinado que si “user_option” y “computer_option” son iguales, debe salir un “print” que avise que hay un empate y nos muestre que opción escogió cada uno. Por lo tanto, ahora sólo construiremos las posibilidades de victoria que tiene el “usuario”; el razonamiento es que es suficiente con las opciones de victoria del “usuario”, sabemos que si él no gana es porque lógicamente ganó la computadora (el empate ya lo descartamos). Para ello utilizaremos un “elif” porque es una nueva condición dentro de la inicial “if”. Tenemos que tener cuidado con la sangría, un pequeño error de sangría no dejaría correr el juego. Haremos las siguientes posibilidades:

<elif (user_option == "piedra"andcomputer_option == "tijera") or (user_option == "papel"andcomputer_option == "piedra") or (user_option == "tijera"andcomputer_option == "papel"):
      print("Gana el usuario con", user_option, "y pierde la computadora con", computer_option)>

Colocamos entre parentesis cada posibilidad para poder separarlas con un “or”. De esta manera podemos colocar varias posibilidades dentro de una misma condición. Tenemos las posibilidades de victoria del “usuario” con “papel”, “piedra”, o “tijera”, ahora sólo nos queda colocar un “else” que indicará que si ninguna de esas posibilidades de victoria ocurrió, fue entonces una derrota y ganó la computadora:

<else:
      print("Gana la computadora con", computer_option, "y pierde el usuario con", user_option)>

En cada resultado pusimos un “print” para que nos diga que opción tomó el “usuario” y la “computadora”. Es un código sencillo pero muy útil para ir aprendiendo como combinar algunos conceptos. Si desean ver el código final, y el resultado, debería quedarnos algo como esto:

<import random

options = ("piedra", "papel", "tijera")

for game in range(3):
    user_option = input("Elige Piedra, Papel o Tijera: ").lower()
    if user_option not in options:
       print("Opción no válida.")
       user_option = input("Elige Piedra, Papel o Tijera: ")

    computer_option = random.choice(options)
    print("La computadora elige =>", computer_option)
    ifuser_option == computer_option:
      print("Es un empate, el usuario tiene", user_option, "y la computadora tiene", computer_option)
    elif (user_option == "piedra"andcomputer_option == "tijera") or (user_option == "papel"andcomputer_option == "piedra") or (user_option == "tijera"andcomputer_option == "papel"):
      print("Gana el usuario con", user_option, "y pierde la computadora con", computer_option)
    else:
      print("Gana la computadora con", computer_option, "y pierde el usuario con", user_option)>

El resultado va a variar cada vez, pero un ejemplo en la consola sería este:

código.png

Espero que les sea de ayuda, ¡Éxitos y ánimo!

Escribe tu comentario
+ 2