No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Proyecto: tuplas

29/38
Recursos

¿Cómo implementar las tuplas en tu juego de piedra, papel o tijera?

¡Bienvenido a una emocionante lección sobre cómo mejorar tu juego de piedra, papel o tijera con los conceptos de Python! Imagina un juego donde las opciones son constantes y definitivas; ese es el poder de las tuplas. En este artículo, te guiaré paso a paso para integrar las tuplas en tu juego, asegurando que las opciones se mantengan inalterables. Además, aprenderás cómo hacer que la elección de la computadora sea aleatoria usando el módulo random de Python. ¡Acompáñame en esta aventura educativa!

¿Qué es una tupla y cómo se utiliza en el juego?

Una tupla en Python es una estructura de datos similar a una lista, pero con una diferencia crucial: las tuplas son inmutables. Esto significa que una vez creadas, no puedes modificar sus elementos. Son ideales cuando quieres almacenar valores constantes que no cambian a lo largo del programa. En el contexto de nuestro juego, las opciones "piedra", "papel" y "tijera" son perfectas candidatas para una tupla.

# Definiendo la tupla de opciones del juego
options = ('piedra', 'papel', 'tijera')

Esta tupla asegura que las opciones de juego no cambiarán, manteniendo la integridad del juego.

¿Cómo integrar aleatoriedad en la elección de la computadora?

Para simular una competencia justa, es esencial que la computadora pueda elegir entre "piedra", "papel" y "tijera" de manera aleatoria. Aquí es donde entra el módulo random de Python, que proporciona herramientas para generar valores aleatorios.

import random

# Elección aleatoria para la computadora
computer_option = random.choice(options)

El método random.choice() selecciona aleatoriamente una opción de la tupla options, garantizando que la computadora no esté sesgada.

¿Cómo validar la opción del usuario?

Un problema común en programas interactivos es manejar las entradas no válidas del usuario. Queremos asegurarnos de que el usuario solo pueda elegir una de las opciones válidas de nuestra tupla. Si elige algo fuera de estas opciones, debemos informarle de manera adecuada.

# Verificación de la opción del usuario
user_option = input("Elige piedra, papel o tijera: ").lower()

if user_option not in options:
    print("Esa opción no es válida. Por favor, elige de nuevo.")
else:
    print(f"Tu opción: {user_option}, Opción del computador: {computer_option}")

Utilizando el operador in, podemos verificar si la opción del usuario está dentro de las opciones válidas, mejorando así la experiencia del usuario al proporcionar retroalimentación inmediata.

Comentarios finales sobre la implementación

El juego de piedra, papel o tijera no solo es divertido, sino también una excelente manera de practicar conceptos fundamentales de Python. Con el uso de tuplas y la habilidad para integrar aleatoriedad, hemos mejorado significativamente la funcionalidad de nuestro juego. Al seguir expandiendo y puliendo el programa, te encontrarás cada vez más cómodo con Python.

¿Te animas a experimentar con otras estructuras de datos en Python? En la próxima lección abordaremos los diccionarios, otra poderosa herramienta en el repertorio de Python. ¡Sigue con entusiasmo!

Aportes 220

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

import random

options = (“piedra”, “papel”,“tijera”)
computer_option = random.choice(options)
user_option= 1
while user_option not in options:
user_option = input("piedra, papel o tijera: ").lower()

if user_option == computer_option:
print(“Empate!”)
elif user_option == “piedra”:
if computer_option == “tijera”:
print(“piedra gana a tijera”)
print(“user gano!”)
else:
print(“Papel gana a piedra”)
print(“computer gano!”)
elif user_option == “papel” :
if computer_option == “piedra”:
print(“papel gana a piedra”)
print(“user gano!”)
else:
print(“tijera gana a papel”)
print(“computer gano!”)
else: # user tiene tijera
if computer_option == “papel”:
print(“tijera gana a papel”)
print(“user gano!”)
else:
print(“piedra gana a tijera”)
print(“computer gano!”)

Podemos hacer que el programa no se ejecuta en caso de que la opción ingresada no sea una de las tres. la función exit() hace que el código no se sigua ejecutando.

import random


option = ('piedra', 'papel', 'tijera')
user = input('¿piedra, papel o tijera? ')
if not user in option:
    print('Por favor, elige una opción válida...')
    exit()
# más código 👇

Aporte de piedra papel tijera con cosas extra.

import time
import sys
import os
import random

# Funcion para validar si son numeros lo que se ingresa.


def validar_numero(text, text2):
    while True:
        try:
            delay_print(text)
            valor = int(input("\n=> "))
        except ValueError:
            delay_print(f"Invalid option\nPlease only enter numbers{text2}\n")
            time.sleep(1.5)
            os.system("cls")
            title()
            continue
        return valor
# Funcion para escribir letra por letra


def delay_print(s):
    for c in s:
        sys.stdout.write(c)
        sys.stdout.flush()
        time.sleep(0.02)  # Tiempo de espera estre cada letra


def resultado_del_juego(resultado):
    time.sleep(0.5)
    os.system("cls")
    title()
    delay_print(
        f"You chose {options[user_option]} Computer chose {options[computer_option]}\n{resultado}\n")
    time.sleep(2)


def repetir(text):
    while True:
        repetir = validar_numero(f"Play again?\n1-Yes  2-No", text)
        if repetir == 2:
            global ciclo
            delay_print("Thanks for playing, see you next time!")
            ciclo = 0
            return ciclo
        elif repetir == 1:
            return os.system("cls")
        else:
            delay_print(f"Invalid option\nPlease only enter numbers{text}\n")
            time.sleep(1.5)
            os.system("cls")
            title()


def title():
    print("______           _     ______                             _____      _                         ")
    print("| ___ \         | |    | ___ \                           /  ___|    (_)                        ")
    print("| |_/ /___   ___| | __ | |_/ /_ _ _ __  _ __   ___ _ __  \ `--.  ___ _ ___ ___  ___  _ __ ___  ")
    print("|    // _ \ / __| |/ / |  __/ _` | '_ \| '_ \ / _ \ '__|  `--. \/ __| / __/ __|/ _ \| '__/ __| ")
    print("| |\ \ (_) | (__|   <  | | | (_| | |_) | |_) |  __/ |    /\__/ / (__| \__ \__ \ (_) | |  \__ \ ")
    print("\_| \_\___/ \___|_|\_\ \_|  \__,_| .__/| .__/ \___|_|    \____/ \___|_|___/___/\___/|_|  |___/ ")
    print("                                 | |   | |           Score                                     ")
    print(
        f"                                 |_|   |_|      you {score[0]} Computer {score[1]}            ")


score = [0, 0]
options = ("", "Rock \U0001f44a", "Paper \u270B", "Scissor\u2702\ufe0f ")
#          0      1                  2                3
ciclo = 1

while ciclo == 1:
    os.system("cls")
    title()
    user_option = validar_numero(
        "Enter a choice\n1 Rock\U0001f44a\n2 Paper\u270B\n3 Scissor\u2702\ufe0f \n4 Exit.", " between 1 and 4.")
    if user_option not in (1, 2, 3, 4):
        delay_print(
            "Invalid option\nPlease only enter numbers between 1 and 4\n")
        time.sleep(1.5)
    if user_option == 4:
        time.sleep(0.5)
        ciclo = 0
        delay_print("Thanks for playing, see you next time!")
    computer_option = random.randint(1, 3)
    if user_option == computer_option:
        resultado_del_juego("It's a tie!")
        repetir(" between 1 and 2.")
    elif user_option == 1 and computer_option == 2 or user_option == 2 and computer_option == 3 or user_option == 3 and computer_option == 1:
        resultado_del_juego("You lose")
        score[1] += 1
        repetir(" between 1 and 2.")
    elif user_option == 1 and computer_option == 3 or user_option == 2 and computer_option == 1 or user_option == 3 and computer_option == 2:
        resultado_del_juego("You win!")
        score[0] += 1
        repetir(" between 1 and 2.")


import random
options = (‘piedra’, ‘papel’, ‘tijera’)
user = input('piedra, papel o tijera = ')
user = user.lower()
pc = random.choice(options)

print('User = ', user)
print('Pc = ', pc)

if pc == user:
print(‘Empate’)
elif (user == 'tijera’and pc == ‘piedra’) or (user == ‘papel’ and pc == ‘tijera’) or (user == ‘piedra’ and pc == ‘papel’):
print(‘Has perdido’)
else:
print(‘Has ganado’)

Para que después de decirle que esa no es una opción válida, el usuario tenga la oportunidad de colocar otra opción, he añadido dos líneas de código, sin modificar las otras líneas:

if not user_option in options:
  print("Esa opción no es válida")
  user_option = input("Coloca nuevamente una opción => ")
  user_option = (user_option.lower())

Excelente forma de incorporar las tuplas!

Hola!

Les comparto mi propuesta de solución, en mi caso coloqué la validación para las opción del user, en caso que esta no sea válida, genera el mensaje y se detiene la ejecución del programa.

# Proyecto: condicionales

import random

# Creamos una tupla de opciones
options = ("piedra", "papel", "tijera")

user_option = input("Piedra, Papel o Tijera => ")

# Convertimos a minúscula el texto ingresado por el usuario
user_option = user_option.lower()
 #print(user_option)

if user_option not in options:
  print(f"La opcion {user_option} no es válida")
else:
  # Seleccionamos la opción de manera aleatoria
  computer_option = random.choice(options)
  print("computer => ", computer_option)

  if user_option == computer_option:
    print("Empate!")
  elif user_option == "piedra":
    if computer_option == "tijera":
      print(f"{user_option} gana a {computer_option}. User ganó!")
    else:
      print(f"{computer_option} gana a {user_option}. Computer ganó!")
  elif user_option == "papel":
    if computer_option == "piedra":
      print(f"{user_option} gana a {computer_option}. User ganó!")
    else:
      print(f"{computer_option} gana a {user_option}. Computer ganó!")
  elif user_option == "tijera":
    if computer_option == "papel":
      print(f"{user_option} gana a {computer_option}. User ganó!")
    else:
      print(f"{computer_option} gana a {user_option}. Computer ganó!")  
import random

user_option = input("piedra, papel o tijera: ")
options = ("piedra", "papel", "tijera")
computer_option = random.choice(options)
print("el computador eligio: {}".format(computer_option))

if user_option == computer_option:
  print("empate")
elif user_option == "piedra":
  if computer_option == "tijera":
    print("ganaste")
  else:
    print("perdiste")
elif user_option == "papel":
  if computer_option == "tijera":
    print("perdiste")
  else:
    print("ganaste")
elif user_option == "tijera":
  if computer_option == "papel":
    print("ganaste")
  else:
    print("perdiste")
else:
  print("opción incorrecta")

import random

""" Piedra, Papel o Tijera """
you = input("piedra, papel o tijera => ").lower()

options = ("piedra", "papel", "tijera")
pc = random.choice(options)

if you == pc:
  print(f"You chose: {you}, PC chose: {pc} => Empate")
elif you == "piedra":
  if pc == "tijera":
    print(f"You chose: {you}, PC chose: {pc} => Ganaste")
  else:
    print(f"You chose: {you}, PC chose: {pc} => Perdiste")
elif you == "papel":
  if pc == "piedra":
    print(f"You chose: {you}, PC chose: {pc} => Ganaste")
  else:
    print(f"You chose: {you}, PC chose: {pc} => Perdiste")
elif you == "tijera":
  if pc == "papel":
    print(f"You chose: {you}, PC chose: {pc} => Ganaste")
  else:
    print(f"You chose: {you}, PC chose: {pc} => Perdiste")
else:
  print(f'"{you}" No es una opcion valida')

esta clase es oro

Rock, Paper, Scisors (version en ingles)
import random

options = ('rock', 'paper', 'scisors')
user_option = input('rock, paper or scisors => ')
user_option = user_option.lower()

if not user_option in options:
    print('that option is not valid')
computer_option = random.choice(options)

print('User option =>', user_option)
print('Computer option =>', computer_option)

if user_option == computer_option:
    print('Is a tie!')
elif user_option == 'rock':
    if computer_option == 'scisors':
        print('rock beats scisors')
        print('user wins!')
    else:
        print('paper beats rock')
        print('computer wins!')
elif user_option =='paper':
    if computer_option =='rock':
        print('paper beats rock')
        print('user win')
    else:
        print('scisors beats paper')
        print('computer wins!')
elif user_option == 'scisors':
    if computer_option == 'paper':
        print('scisors beats paper')
        print('user wins!')
    else:
        print('rock beats scisors')
        print('computer wins')
\# Apunte de Clase: Proyecto de Tuplas en Python para Videojuego de Piedra, Papel o Tijera \## Introducción 🚀 En este apunte exploraremos cómo implementar un videojuego de Piedra, Papel o Tijera en Python, utilizando las tuplas para almacenar las opciones del juego y seleccionar aleatoriamente la elección de la computadora. Las tuplas, gracias a su inmutabilidad, son una excelente elección para este tipo de datos que no cambiarán a lo largo de la ejecución del programa. \## Conceptos Clave 🗝️ \### Tuplas en Python Una tupla es una colección de Python que es ordenada e inmutable. Se utiliza para almacenar múltiples items en una sola variable. Las tuplas son escritas con paréntesis `()` y los elementos dentro de ellas pueden ser de cualquier tipo. \### Módulo `random` Para seleccionar un elemento aleatoriamente de nuestra tupla, utilizaremos el módulo `random` de Python, específicamente la función `choice()` que elige un elemento al azar de una secuencia. \## Implementación Paso a Paso 🛠️ \### Paso 1: Definir las Opciones del Juego Primero, definiremos las opciones disponibles en el juego como una tupla: ```python opciones = ("piedra", "papel", "tijera") ``` \### Paso 2: Elección Aleatoria por la Computadora Utilizaremos el módulo `random` para que la computadora elija su jugada: ```python import random eleccion\_pc = random.choice(opciones) ``` \### Paso 3: Entrada del Usuario Pediremos al usuario que ingrese su elección, asegurándonos de que sea válida: ```python eleccion\_usuario = input("Elige: piedra, papel o tijera: ").lower() if eleccion\_usuario not in opciones: print("Elección no válida, intente de nuevo.") ``` \### Paso 4: Lógica del Juego Implementaremos la lógica para determinar el ganador: ```python if eleccion\_usuario == eleccion\_pc: print(f"Empate, ambos eligieron {eleccion\_usuario} 😲") elif (eleccion\_usuario == "piedra" and eleccion\_pc == "tijera") or \\ (eleccion\_usuario == "papel" and eleccion\_pc == "piedra") or \\ (eleccion\_usuario == "tijera" and eleccion\_pc == "papel"): print(f"Ganaste 🏆, {eleccion\_usuario} gana a {eleccion\_pc}!") else: print(f"Perdiste 😢, {eleccion\_pc} gana a {eleccion\_usuario}.") ``` \### Paso 5: Ejecución Dinámica Para hacer el juego más dinámico, podemos poner todo el proceso dentro de un bucle `while` para que el usuario pueda jugar múltiples veces sin tener que reiniciar el programa: ```python seguir\_jugando = "si" while seguir\_jugando.lower() == "si": \# Insertar aquí los pasos 2, 3 y 4 seguir\_jugando = input("¿Quieres seguir jugando? (si/no): ") ``` \## Ejemplos Prácticos Complejos 🎲 Para llevar nuestro juego al siguiente nivel, podríamos introducir una puntuación, donde el usuario y la computadora acumulen puntos a lo largo de varias rondas, y al final, se declare un ganador basado en quién tenga más puntos. Esto requeriría variables adicionales para llevar la cuenta de los puntos y lógica adicional para determinar el final del juego y el ganador. \## Conclusión 🏁 Este proyecto demuestra cómo se pueden utilizar las tuplas en Python para almacenar datos inmutables, como las opciones en un juego de Piedra, Papel o Tijera. Mediante el uso del módulo `random`, podemos añadir un elemento de incertidumbre al permitir que la computadora elija su jugada de manera aleatoria, haciendo el juego impredecible y emocionante. La implementación de una lógica de juego básica y la posibilidad de extensión a un sistema de puntuación demuestran la flexibilidad de Python como herramienta de programación. ¡Espero que este apunte te inspire a crear tu propia versión del juego y a explorar más sobre la programación en Python! 🐍🎮
Una manera de que el programa no continúe hasta introducir la opción correcta: ```js while True: if not user_option in options: print('esa opcion no es valida') user_option = input('Elije nuevamente: piedra, papel o tijera => ').lower() else: break ```

Me encanta este primer video juego con Python; es aparentemente mas sencillo que otros lenguajes.

#proyecto - juego de piedra, papel o tijera
import random #permite enviar de forma aleatoria una tupla o lista de opciones

options = ('piedra', 'papel','tijera')
user_option = input('piedra, papel o tijera => ')
user_option = user_option.lower()

if not user_option in options:
  print('Esa opción no es valida')


computer_option = random.choice(options)#escoger algo basado en tupla o lista

print('User option =>', user_option)
print('Computer option =>', computer_option)


if user_option == computer_option:
  print('Empate!!')
elif user_option == 'piedra':
  if computer_option == 'tijera':
    print('piedra gana a tijera')
    print('user gano!')
  else:
    print('papel gana a piedra')
    print('computer gano!')
elif user_option == 'papel':
  if computer_option == 'piedra':
    print('papel gana a piedra')
    print('user gano!')
  else:
    print('tijera gana a papel')
    print('computer gano!')
elif user_option == 'tijera':
  if computer_option == 'papel':
    print('tijera gana a papel')
    print('user gano!')
  else:
    print('piedra gana a tijera')
    print('computer gano!')

Esta interesante el proyecto.

#proyecto piedra papel o tijera
import random

contador = 0
punto_bot = 0
punto_user = 0

bot = [‘piedra’, ‘papel’, ‘tijera’]

while (contador <= 2):

num = random.randint(0, 2)
print(bot[num])

User_input = input("ingrese piedra papel o tijera: ")

if (bot[num] == User_input):
print(User_input, bot[num], “empate”)

elif ((bot[num] == ‘papel’ and User_input == ‘piedra’)
or (bot[num] == ‘piedra’ and User_input == ‘tijera’)
or (bot[num] == ‘tijera’ and User_input == ‘papel’)):
punto_bot += 1

print(User_input, bot[num], "PERDISTE usuario")

elif ((bot[num] == ‘piedra’ and User_input == ‘papel’)
or (bot[num] == ‘tijera’ and User_input == ‘piedra’)
or (bot[num] == ‘papel’ and User_input == ‘tijera’)):
punto_user += 1

print(User_input, bot[num], "PERDISTE bot")

else:
print("ganaste ")
print(User_input, bot[num])

contador += 1
print(punto_user, “usuario”)
print(punto_bot, “bot”)

¡Fantastico no conocia ese truco de opción aleatoria con el random, bastante interesante, como poco a poco aprendemos y se va modificando el popular juego de piedra, papel o tijera !

import random
input ("-----WELCOME TO THE GAME: ROCK, PAPER OR SCISSOR---- ")
option=("rock", "paper", "scissor")
user1_option= input("User 1, Choose an option: rock, paper or scissor ")
user1_option=user1_option.lower()
computer_option= random.choice(option)
print(computer_option)

if user1_option == computer_option:
  print("Tie!")
  
elif user1_option=="scissor" and computer_option=="rock":
  print("rock beats scissor")
  
elif user1_option=="paper" and computer_option=="rock":
  print("paper beats rock")
  
elif user1_option=="scissor" and computer_option=="paper":
  print("scissor beats paper")
  
elif user1_option=="rock" and computer_option=="scissor":
  print("rock beats scissor")
  
elif user1_option=="rock" and computer_option=="paper":
  print("paper beats rock")
  
elif user1_option=="paper" and computer_option=="scissor":
  print("scissor beats paper")
else:
  print("Ingrese otra respuesta")

Código optimizado!
Estaba haciendo el ejercicio antes de ver el video completo e hice esto… pero vi que has utilizado “if not”… es aceptable lo que escribi? (he utilizado mucho if, elif y else)
gracias!!!

import random
ppt = ('piedra', 'papel', 'tijera')
x = input('JUGADOR N°1: Elige la opción de Piedra, Papel o Tijera ==> ')
y = random.choice(ppt)
x = x.lower()
y = y.lower()

if x in ppt:
    if x == y:
        print (f'Hay EMPATE ya que el JUGADOR N°1 ha eligido {x} y LA COMPUTADORA también')
    elif x == 'piedra':
        if y == 'papel':
            print(f'El JUGADOR N°1 ha elegido {x} y LA COMPUTADORA ha elegido {y}. GANA LA COMPUTADORA')
        else:
            print(f'El JUGADOR N°1 ha elegido {x} y LA COMPUTADORA ha elegido {y}. GANA EL JUGADOR N°1')
    elif x == 'papel':
        if y == 'piedra':
            print(f'El JUGADOR N°1 ha elegido {x} y LA COMPUTADORA ha elegido {y}. GANA EL JUGADOR N°1')
        else:
            print(f'El JUGADOR N°1 ha elegido {x} y LA COMPUTADORA ha elegido {y}. GANA LA COMPUTADORA')
    else:
        if y == 'piedra':
            print(f'El JUGADOR N°1 ha elegido {x} y LA COMPUTADORA ha elegido {y}. GANA LA COMPUTADORA')
        else:
            print(f'El JUGADOR N°1 ha elegido {x} y LA COMPUTADORA ha elegido {y}. GANA EL JUGADOR N°1')
else:
    print('Error de redacción. Revisa y vuelve a escribir de nuevo')

Así va quedando mi código 😃

import random

options = ('Papel', 'Piedra', 'Tijera')
frases = ("Papel gana a piedra", "Piedra gana a tijera", "Tijera gana a papel", "Computer ganó!", "User ganó!")

computer_option = random.choice(options)
a = f"Selección de la computadora: {computer_option}"

user_option = input("Piedra, papel o tijera: ")
user_option = user_option.lower()
user_option = user_option.capitalize()
b = f"Tú selección: {user_option}"

if not user_option in options:
  print("Selección no valida")
else:
  print(b)
  print(a)

if user_option == computer_option:
  print("Empate!")
elif user_option == options[1]:
  if computer_option == options[0]:
    print(frases[0])
    print(frases[3])
  else:
    print(frases[1])
    print(frases[4])
elif user_option == options[0]:
  if computer_option == options[2]:
    print(frases[2])
    print(frases[3])
  else:
    print(frases[0])
    print(frases[4])
elif user_option == options[2]:
  if computer_option == options[1]:
    print(frases[1])
    print(frases[3])
  else:
    print(frases[2])
    print(frases[4])
import random

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

user_option = input('piedra, papel o tijera => ')
user_option = user_option.lower() 

if not user_option in options:
  print('Esa opcion no es valida')
  
computer_option = random.choice(options)

print('User option => ', user_option)
print('Computer option => ',computer_option)

if user_option == computer_option:
  print('Empate!')
elif user_option == 'piedra':
  if computer_option== 'tigera':
    print('piedra gana a tijera')
    print('user gana!')
  else:
    print('Papel gana a piedra')
    print('computer gano!')
elif user_option == 'papel':
  if computer_option == 'piedra':
    print('papel gano a piedra')
    print('user gano!')
  else:
    print('tijera gana a papel')
    print('computer gana!')
elif user_option == 'tijera':
  if computer_option == 'papel':
    print('tijera gana a papel')
    print('user gano!')
  else:
    print('piedra gana a tijera')
    print('computer gana!')
  
Aunque básico pero funcional, le hice una segunda oportunidad al programa para que el usuario pueda seguir validando una segunda opción, si no el juego se cerrará. ```python import random options = ("piedra", "papel", "tijera") userOption = input("Elige una opción: 1. PIEDRA, 2. PAPEL, 3. TIJERA ") userOption = userOption.lower() computerOption = random.choice(options) if not userOption in options: inputOpt = input("Elige SOLO entre piedra, papel o tijera, Cual es tu eleccion? ") userOption = inputOpt.lower() if userOption in options: print("El jugador eligio", userOption,".", "La computadora eligio", computerOption,".") if (userOption == computerOption): print("Esto fue un empate 😐") elif userOption == "papel": if computerOption == "piedra": print("papel gana a piedra") print("Ganaste 🥳 ") else: print("tijera gana a papel 😥 ") print("Perdiste 😥!") elif userOption == "piedra": if computerOption == "tijera": print("piedra gana a tijera") print("Ganaste 🥳 ") else: print("papel gana a piedra 😥 ") print("Perdiste 😥!") elif userOption == "tijera": if computerOption == "papel": print("tijera gana a papel") print("Ganaste 🥳 ") else: print("piedra gana a tijera 😥 ") print("Perdiste 😥!") else: print("Estoy Hablando Mandarin??????") ```
Porque sale con rayas amarillas si no hay fallo ? ![](https://static.platzi.com/media/user_upload/Captura%20desde%202024-07-03%2012-11-58-0c983d1d-8fc9-4aa9-a327-5b9f9b1dda24.jpg)
Recuerdo que en la escuela, un profesor de informática nos enseñó a programar nuestra propia página web y conocer de la edición del html del perfil en la red social Tumblr me ayudó mucho pero no salía de eso, de solamente editar la apariencia de una web. Ahora con esta clase me doy cuenta de la infinidad de opciones que hay en la programación y solamente es con el ejemplo de piedra, papel y tijera. Estoy muy satisfecha.
Mi solución es que si lo escrito por el usuario es lo que se encuentra dentro de la tupla realice todo el juego, de lo contrario si no se encuentra que lo que escribió el usuario que mande el mensaje y termine el programa. Viene con la evaluación de tijera que faltaba. ![](https://static.platzi.com/media/user_upload/2024-06-19_23h53_28-52fc116e-a693-4242-b037-b4a5b974d1a6.jpg)
Este es mi propuesta de solución, tiene funciones de clases posteriores pero quería enfrentar ese reto. Tiene bloques de código que me gustaría que fuera reusables porque se repiten mucho: ```js import random as rd print('Este es el juego de piedra, papel o tijera.'); user_option = input('Elige piedra, papel o tijera: ').lower(); game_options = ('piedra', 'papel', 'tijera'); if user_option in game_options: computer_option = rd.choice(game_options) print(f'Has escogido {user_option}') print(f'La computadora ha escogido {computer_option}') if user_option == computer_option: print('Esto es un empate, seleccionaron la misma opcion'); elif user_option == 'piedra': if computer_option == 'tijera': print('Piedra gana a tijera'); print('El o la usuario ha ganado.'); else: print('Papel gana a piedra'); print('La computadora ha ganado.'); elif user_option == 'papel': if computer_option == 'tijera': print('Tijera gana a papel'); print('La computadora ha ganado.'); else: print('Papel gana a piedra'); print('El o la usuario ha ganado.'); elif user_option == 'tijera': if computer_option == 'papel': print('Tijera gana a papel'); print('El o la usuario ha ganado.'); else: print('Piedra gana a tijera'); print('La computadora ha ganado.'); else: print('Esa opción no es valida, escoge de nuevo (tienes 2 oportunidades más).') i = 0 while i < 2: i += 1 user_option = input('Elige piedra, papel o tijera: ').lower(); if user_option in game_options: break if user_option in game_options: computer_option = rd.choice(game_options) print(f'Has escogido {user_option}') print(f'La computadora ha escogido {computer_option}') if user_option == computer_option: print('Esto es un empate, seleccionaron la misma opcion'); elif user_option == 'piedra': if computer_option == 'tijera': print('Piedra gana a tijera'); print('El o la usuario ha ganado.'); else: print('Papel gana a piedra'); print('La computadora ha ganado.'); elif user_option == 'papel': if computer_option == 'tijera': print('Tijera gana a papel'); print('La computadora ha ganado.'); else: print('Papel gana a piedra'); print('El o la usuario ha ganado.'); elif user_option == 'tijera': if computer_option == 'papel': print('Tijera gana a papel'); print('El o la usuario ha ganado.'); else: print('Piedra gana a tijera'); print('La computadora ha ganado.'); else: print('Gracias por jugar.') ```
es interesante ver que el orden del `not` en la condicion `if` puede ir antes del `in` y tambien funcionara. por ejemplo: `` if user_option not in option:` ``
**Ejemplo de código del juego “piedra, papel o tijera”** import random def jugar():     usuario = ""     while usuario not in \['piedra', 'papel', 'tijera']:         usuario = input("¿Qué eliges? 'piedra', 'papel' o 'tijera': ").lower()     computadora = random.choice(\['piedra', 'papel', 'tijera'])     if usuario == computadora:         return '¡Es un empate!'     # Estas condiciones determinan quién gana el juego.     if es\_ganador(usuario, computadora):         return '¡Ganaste!'     return '¡Perdiste!' def es\_ganador(jugador, oponente):     # Devuelve True si el jugador gana     # Las condiciones de victoria son: piedra > tijera, tijera > papel, papel > piedra     if (jugador == 'piedra' and oponente == 'tijera') or (jugador == 'tijera' and oponente == 'papel') or (jugador == 'papel' and oponente == 'piedra'):         return True print(jugar())
![](https://static.platzi.com/media/user_upload/Captura%20de%20Pantalla%202024-05-15%20a%20la%28s%29%2012.41.36-7ebefed1-82a0-4507-8d51-cab40af2e58b.jpg)
```js import random options = ('piedra', 'papel', 'tijera') user_option = input('Piedra 🪨, Papel 📄 o Tijera ✂ >> ') if not user_option.lower() in options: print(f''' ⚠ {user_option} NO es una opción válida ⚠''') computer_option = random.choice(options) print(""" 🎊 🎊 🎊 🎊 🎊 🎊 🎊 🎊 🎊 🎊 🎊 🎊 """) if user_option.upper() == 'PIEDRA': user_symbol = '>> User: 🪨 <<' elif user_option.upper() == 'PAPEL': user_symbol = '>> User: 📄 <<' elif user_option.upper() == 'TIJERA': user_symbol = '>> User: ✂ <<' else: user_symbol = '⚠ Opción no válida ⚠' if computer_option == 'piedra': computer_symbol = '>> Computer: 🪨 <<' elif computer_option == 'papel': computer_symbol = '>> Computer: 📄 <<' elif computer_option == 'tijera': computer_symbol = '>> Computer: ✂ <<' print(f'''{user_symbol.center(30,"*")} {".....v.s.....".center(30,"*")} {computer_symbol.center(30,"*")} ''') if user_option.upper() == computer_option.upper(): print('Empate') elif user_option.upper() == 'PIEDRA': if computer_option.upper() == 'TIJERA': print('Piedra gana a Tijera') print('---------------------------------') print('User Ganó!!!') else: print('Papel gana a Piedra') print('---------------------------------') print('Computer Ganó!!!') elif user_option.upper() == 'PAPEL': if computer_option.upper() == 'PIEDRA': print('Papel gana a Piedra') print('---------------------------------') print('User Ganó!!!') else: print('Tijera gana a Papel') print('---------------------------------') print('Computer Ganó!!!') elif user_option.upper() == 'TIJERA': if computer_option.upper() == 'PAPEL': print('Tijera gana a Papel') print('---------------------------------') print('User Ganó!!!') else: print('Piedra gana a Tijera') print('---------------------------------') print('Computer Ganó!!!') else: print('⚠ Opción no válida ⚠') ```
Lo habia hecho con lista pero luego lo cambie a tupla, adicionando la opcion exit() posteada por kevin Camacho my\_list = ('Piedra', 'Papel', 'Tijera') user\_option = input('Piedra,Papel o Tijera =>') if user\_option == user\_option.capitalize() or user\_option.lower(): user\_option.title() new\_change = user\_option.title() print(new\_change) if new\_change not in my\_list: print('Esa opcion no es valida') exit() computer\_option = random.choice(my\_list) if new\_change == computer\_option: print('Empate') elif new\_change == 'Piedra': if computer\_option == 'Tijera': print('Piedra gana a Tijera') print('user ganó') else: print('Papel gana a Piedra') print('Computer ganó') elif new\_change == 'Papel': if computer\_option == 'Piedra': print('Papel gana a Piedra') print('user ganó') else: print('Tijera gana a Papel') print('Computer ganó') elif new\_change == 'Tijera': if computer\_option == 'Papel': print('Tijera gana a papel') print('user ganó') else: print('Piedra gana a Tijera') print('Gano Computer')
versión basica de piedra papel y tijera: ![](https://static.platzi.com/media/user_upload/script_p_p_t-28c3ef34-ade0-4636-80f7-c47d14898ff6.jpg)
Brutal!!, nunca había llegado tan lejos en Python
De esta clase extraigo algunas cosas importantes paa mí y mi comprensión. 1. Las tuplas ayudan a guardar una lista cerrada o inmodificable. En el caso del videojuego ***Piedra, papel o tijera***, es útil ya que me permite guardar las opciones invariables del juego, que son precisamente: ***Piedra, papel o tijera***,... Como dato importante, las tuplas se guardan o crean por medio de los paréntesis y al declarar una variable, en el caso del juego sería: ```js options = ('piedra', 'papel', 'tijera') ``` 1. Al tener las ***options*** definidas a través de la tupla, necesitamos que éstas se escojan aleatoriamente, para ello se emplea la siguiente función de Python. ```js Import random ``` 1. Una vez declara esta función en Python, se declara en la variable computer\_option la función random. ```js computer_option = random.choice(options) ``` Allí se ha declarado o aignado la tupla a la opción del computador, y además, se le solicita que tome un valor aleatorio. 1. Finalmente, Nicolas Molina, menciona una forma eficiente de ayudar al usuario a que escoja únicamente las opciones registradas en la tupla a través de condicionales. ```js if not user_option in options: print('Esa opción no es válida') ``` Lo que se está declarando es que si el usuario declara una opción ***(user\_option)*** y si ésta no se encuentra dentro ***(in)*** de la tupla (options), entonces ejecutará ***'Esa opción no es válida***'.
Tengo una duda, ¿como puedo hacer que solo haga print el aviso de que la opcion no es valida?? 🤔
![]()![](https://static.platzi.com/media/user_upload/tuple-a0f4e0d0-8fc6-4066-a7f2-2bb568ca9a22.jpg)
![](https://static.platzi.com/media/user_upload/main.py-2024-03-17-20-51-39-313a5b5b-ae13-4b2f-a134-7f6f29f73a79.jpg) mejorando el piedra papel o tijera :p
```js import random options = ("piedra", "papel", "tijera") userOptions = (input("piedra, papel o tijera => ")).lower() # userOptions = userOptions.lower() / tambien se puede usa esta forma if userOptions not in options: print(f"La opcion {userOptions} no es valida") pcOptions = random.choice(options) print('User options => ', userOptions) print('Pc options => ', pcOptions) if userOptions == pcOptions: print("EMPATE") elif (userOptions == "piedra" and pcOptions == "tijera") or \ (userOptions == "papel" and pcOptions == "piedra") or \ (userOptions == "tijera" and pcOptions == "papel"): print("Usuario 1 Gana") else: print("Usuario 2 Gana") ```import random options = ("piedra", "papel", "tijera") userOptions = (input("piedra, papel o tijera => ")).lower() \# userOptions = userOptions.lower() / tambien se puede usa esta forma if userOptions not in options: print(f"La opcion {userOptions} no es valida") pcOptions = random.choice(options) print('User options => ', userOptions) print('Pc options => ', pcOptions) if userOptions == pcOptions: print("EMPATE") elif (userOptions == "piedra" and pcOptions == "tijera") or \\ (userOptions == "papel" and pcOptions == "piedra") or \\ (userOptions == "tijera" and pcOptions == "papel"): print("Usuario 1 Gana") else: print("Usuario 2 Gana")
Así lo hice yo usando una lista :) No he usado la lista al 100% para simplificar el codigo. Unicamente uso la lista para imprimir la respuesta :) ```python import random def game(): options = ["papel", "piedra", "tijera"] user_choice = int(input("Ingresa tu elección\n0 => Papel\n1 => Piedra\n2 => Tijera\nElección => ")) pc_choice = random.randint(0,2) if user_choice == pc_choice: print(f"Has elegido => {options[user_choice]}") print(f"PC ha elegido => {options[pc_choice]}") print("*" * 22) print("EMPATE!") elif user_choice == 0 and pc_choice == 1 or user_choice == 1 and pc_choice == 2 or user_choice == 2 and pc_choice == 0: print(f"Has elegido => {options[user_choice]}") print(f"PC ha elegido => {options[pc_choice]}") print("*" * 22) print("Victoria!!") elif user_choice not in range(0,2): print("Has elegido perder") else: return(0) game() ```
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFn8MGI6GrLExiHNgP24bvRQmd3wqcU-uLrMODsJZ_DuUOk2FDgf6tYVeQJWNIZptNSLAGJfVcow3nSxrLJ2atsO33f5KV53knZaiZZKWp_JFABR3TMtzXmabZLmYMmW9NEzEiqV82qzBNndzOG50tLFAby26ma5og58oGYHzg9ftv6s5BcDudexaLsyXB/s1024/TUPLA.jpg)
import random

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


user_option = input('piedra, papel o tijera => ')

user_option = user_option.lower()

if not user_option in options:
    print('Esa opción no es valida')
else: 
    print('User option => ', user_option)
    computer_option = random.choice(options)
    print('Computer option => ', computer_option)

    if user_option == computer_option:
        print('Empate!')
    elif user_option == 'piedra':
        if computer_option == 'tijera':
            print('piedra gana a tijera')
            print('user ganó')
        else:
            print('papel gana a piedra')
            print('computer ganó')
    elif user_option == 'papel':
        if computer_option == 'piedra':
            print('papel gana a piedra')
            print('user ganó')
        else:
            print('tijera gana a papel')
            print('computer ganó')
    elif user_option == 'tijera':
        if computer_option == 'papel':
           print('tijera gana a papel') 
           print('user ganó')
        else:
            print('piedra gana a tijera')
            print('computer ganó')

![]()
hice el if asi: if(user\_option not in options): print('No es una opcion') hace lo mismo :D
¿como le hacen para sacar capturas de su código? Saludos
![](https://static.platzi.com/media/user_upload/image-889cb961-0954-42e5-af2a-fc0861817488.jpg)
![](https://drive.google.com/uc?export=view\&id=14Ox-G7DrBiC88NOCb8CbKnBYUlMazm87)![](https://drive.google.com/uc?export=view\&id=14Ox-G7DrBiC88NOCb8CbKnBYUlMazm87)![]()![](https://photos.google.com/share/AF1QipOyz_9p1BiOQyC-fYGEYxMP8pSuDsW2sx50cR0tJww5XwHRSGPkZFGnr9o7YJI6_Q/photo/AF1QipPVtKq8ix4Fel82tbenQgmsF8c1v_2b0kOAoc3Y?key=QXNFRUFkS3dTak9WR3pvWXFud3ZaSW1YdHZqdXB3)
![](<E:\Administrador\Pictures\Capturas de pantalla\Tuplas-Game.png>)![](https://photos.app.goo.gl/YJ4Gwsan5SH4sCti8)
Les adjunto una forma mas elegante con diccionarios.Tal vez les ayude a comprender para mas adelante: ```python import random option = ('piedra', 'papel', 'tijera') user = input('¿piedra, papel o tijera? ').lower() user = user.lower() computer_option = random.choice(option) print(f'Computer option => {computer_option}') print(f'User option => {user}') if user not in option: print('Por favor, elige una opción válida...') else: rules = {'piedra': 'tijera', 'papel': 'piedra', 'tijera': 'papel'} if user == computer_option: print("Empate") elif computer_option == rules[user]: print(f"{user} gana contra {computer_option}") else: print(f"{computer_option} gana contra {user}") ```
Para mi es más fácil usar números y creo al rendimiento del procesador también, aunque en estos ejercicios no se note mucho :v Dejo mi código por si les sirve :3 ```js import random options = (1, 2, 3) print("\n======= Welcome to RPS GAME ======") player = int(input("Chose: 1.Rock - 2.Paper - 3.Scissors => ")) while(player<1 or player>3): print("\n======= YOU DON'T CHOSE AN CORRECT OPTION ======") player = int(input("Chose: 1.Rock - 2.Paper - 3.Scissors => ")) pc = random.choice(options) # Random number if(player==1): plynm = "Rock" elif(player==2): plynm = "Paper" else: plynm = "Scissors" if(pc==1): pcnm = "Rock" elif(pc==2): pcnm = "Paper" else: pcnm = "Scissors" print(f"\nPlayer: VS \t PC:\n {plynm} \t {pcnm}") if(pc == player): print("TIE :O\n") elif(player == 1): if(pc == 2): print("PC WIN :(\n") elif(pc == 3): print("YOUUU WIIIINNNNNN!!! :D\n") elif(player == 2): if(pc == 1): print("YOUUU WIIIINNNNNN!!! :D\n") elif(pc == 3): print("PC WIN :(\n") elif(player == 3): if(pc == 2): print("YOUUU WIIIINNNNNN!!! :D\n") elif(pc == 1): print("PC WIN :(\n") else: print("\nHow do you get here? :v\n") ```
Puede ser que se use de la siguiente forma el IF... ? ```js if user_option not in computer_options: ```if user\_option not in computer\_options: Ya que al escribir el not delante del If sale algo llamado "debug" quizás este mal expresada la sintaxis.
```js import random user_option = input("Piedra, papel o tijera = ").lower() computer_options = ("piedra", "papel", "tijera") computer_option = random.choice(computer_options) if user_option not in computer_options: print("Esa opción no es valida") print(f"La computadora eligió: {computer_option}") if user_option == computer_option: print("Empate") elif user_option == "piedra": if computer_option == "tijera": print("Piedra gana a tijera") print("Usuario gana") else: print("Papel gana a piedra") print("Computadora gana") elif user_option == "papel": if computer_option == "piedra": print("Papel gana a piedra") print("Usuario gana") else: print("Tijera gana a papel") print("Computadora gana") elif user_option == "tijera": if computer_option == "papel": print("Tijera gana a papel") print("Usuario gana") else: print("Piedra gana a tijera") print("Computadora gana") ```import random user\_option = input("Piedra, papel o tijera = ").lower() computer\_options = ("piedra", "papel", "tijera") computer\_option = random.choice(computer\_options) if user\_option not in computer\_options: print("Esa opción no es valida") print(f"La computadora eligió: {computer\_option}") if user\_option == computer\_option: print("Empate") elif user\_option == "piedra": if computer\_option == "tijera": print("Piedra gana a tijera") print("Usuario gana") else: print("Papel gana a piedra") print("Computadora gana") elif user\_option == "papel": if computer\_option == "piedra": print("Papel gana a piedra") print("Usuario gana") else: print("Tijera gana a papel") print("Computadora gana") elif user\_option == "tijera": if computer\_option == "papel": print("Tijera gana a papel") print("Usuario gana") else: print("Piedra gana a tijera") print("Computadora gana")
![](https://static.platzi.com/media/user_upload/image-82116e37-f511-4aa5-b623-186a09c475ed.jpg)
import random options = ('piedra', 'papel', 'tijera') logical\_of\_game = \[{ 'option': 'piedra', 'looser': 'tijera', 'winner': 'papel' }, { 'option': 'papel', 'looser': 'piedra', 'winner': 'tijera' }, { 'option': 'tijera', 'looser': 'papel', 'winner': 'piedra' }] def proccess\_logical\_game(): user\_option = input('piedra, papel o tijera => ') user\_option = user\_option.lower() computer\_option = random.choice(options) if user\_option not in options: print('Esa opcion no es valida') proccess\_logical\_game() else: print(f'User option => {user\_option}') print(f'Computer option => {computer\_option}') for logical\_option in logical\_of\_game: if user\_option == logical\_option\['option']: if computer\_option == logical\_option\['looser']: print('user gano!') elif computer\_option == logical\_option\['winner']: print('computer gano!') else: print('empate!') proccess\_logical\_game()
![](https://static.platzi.com/media/user_upload/tupla1-3dde8725-2a6e-47aa-9ad1-1dd64f60254b.jpg)
file:///home/juniorpeves/Descargas/tupla1.png
Una forma de validar que si el usuario no elige una opción correcta, que el programa termine ```python while True: # Loop infinito user_option = input("Choose rock, paper or scissor: ") user_option = user_option.lower() if not user_option in options: print("Invalid option: Choose rock, paper or scissor") break # Aqui se termina ```
Aquí les dejo mi código: `#módulo que se puede importar porque está predeterminado` `import random` `#tupla en donde están las opciones` `opcion = ('piedra','papel','tijera')` `#comando para que el usuario ingrese la opción` `user = input("Elegir piedra, papel o tijera ")` `#utilizo un método que devuelve la misma cadena con los mismo tipos de datos` `user = user.lower()` `#utilizo un método para que elija un elemento aleatorio de la secuencia` `pc = random.choice(opcion)` `#condicional para verificar si la opcion del usuario esta en la tupla` `if user in opcion:` `#Estructura del juego ` `if user == pc:    ` `print("Empate!") ` `elif user == 'piedra' and pc == 'tijera':    print("Ganaste") ` `elif user == 'papel' and pc == 'piedra':    print("Ganaste") ` `elif user == 'tijera' and pc == 'papel':    print("Ganaste") ` `else:    ` `print("perdiste")else:    ` `print("Opción no válida")`
import random opciones=("piedra","papel","tijera") puntuacion\_jugador=0 puntuacion\_computadora=0 mejor\_de = 3 for \_ in range(mejor\_de): eleccion\_jugador = input("Inserte: piedra, papel o tijera: ").lower() \#lower():minusculas print(f"Ingresaste: {eleccion\_jugador}") eleccion\_computadora = random.choice(opciones) print(f"La computadora eligio:{eleccion\_computadora}") if ( (eleccion\_jugador == "piedra" and eleccion\_computadora == "tijera") or (eleccion\_jugador == "tijera" and eleccion\_computadora == "papel") or (eleccion\_jugador == "papel" and eleccion\_computadora == "piedra") ): print("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-") print("") print("¡Ganaste esta ronda!") print("") print("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-") puntuacion\_jugador += 1 elif eleccion\_jugador == eleccion\_computadora: print("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-") print("") print("Empate!") print("") print("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-") else: print("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-") print("") print("La computadora gana esta ronda.") print("") print("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-") puntuacion\_computadora += 1 if (puntuacion\_jugador>=2): print("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-") print("") print("") print("¡Ganaste!") print("") print("") print("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-") else: print("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-") print("") print("") print("¡Perdiste!") print("") print("") print("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-")
mport random def rock\_paper\_scissors(): options = \['piedra', 'papel', 'tijeras'] computer\_choice = random.choice(options) user\_choice = input("elige entre piedra, papel o tijeras: ").lower() if user\_choice not in options: print("Invalid choice, elige entre 'piedra', 'papel' or 'tijeras'") return print(f"tu elegiste {user\_choice}, la computadora eligio {computer\_choice}.") if user\_choice == computer\_choice: print("hay un empate!") elif (user\_choice == "piedra" and computer\_choice == "tijeras") or \\ (user\_choice == "tijeras" and computer\_choice == "papel") or \\ (user\_choice == "papel" and computer\_choice == "piedra"): print("ganaste!") else: print("perdiste!") if \_\_name\_\_ == "\_\_main\_\_": rock\_paper\_scissors()
import random options = ("piedra", "papel", "tijera") user\_option = input("piedra, papel o tijera = ").lower() if not user\_option in options: print("La opcion no es valida") computer\_option = random.choice(options) print("User options = ", user\_option) print("Computer options = ", computer\_option) if user\_option == computer\_option: print("Empate") elif user\_option == "piedra": if computer\_option == "tijera": print("Piedra gana a tijera") print("El user gano") else: print("El papel gana a piedra") print("El computador gano") elif user\_option == "papel": if computer\_option == "piedra": print("El papel gana a piedra") print("El user gano") else: print("Tijera gana a papel") print("El computer gano") elif user\_option == "tijera": if computer\_option == "papel": print("Tijera gana a papel") print("El user gano") else: print("Piedra gana a tijera") print("El computer gano")
Así va mi jueguito Piedra, papel o tijera: ```js import random options = ('piedra', 'papel', 'tijera') user_option = input('Elije piedra, papel o tijera:') user_option = user_option.lower() if not user_option in options: print('La Opción no es valida') else: computer_option = random.choice(options) print(f'La computadora eligió {computer_option}') if user_option == computer_option: print('Empate') elif user_option =="piedra" and computer_option == "tijera": print('Ganaste') elif user_option == "papel" and computer_option == "piedra": print('Ganaste') elif user_option == "tijera" and computer_option == "papel": print('Ganaste') elif user_option == "piedra" and computer_option == "papel": print('Perdiste') elif user_option == "papel" and computer_option == "tijera": print('Perdiste') elif user_option == "tijera" and computer_option == "piedra": print('Perdiste') ```import random options = ('piedra', 'papel', 'tijera') user\_option = input('Elije piedra, papel o tijera:') user\_option = user\_option.lower() if not user\_option in options: print('La Opción no es valida') else: computer\_option = random.choice(options) print(f'La computadora eligió {computer\_option}') if user\_option == computer\_option: print('Empate') elif user\_option =="piedra" and computer\_option == "tijera": print('Ganaste') elif user\_option == "papel" and computer\_option == "piedra": print('Ganaste') elif user\_option == "tijera" and computer\_option == "papel": print('Ganaste') elif user\_option == "piedra" and computer\_option == "papel": print('Perdiste') elif user\_option == "papel" and computer\_option == "tijera": print('Perdiste') elif user\_option == "tijera" and computer\_option == "piedra": print('Perdiste')
Comparto mi programa con los avances explicadosimport random \# Tupleoptions = ('paper', 'scissors', 'rock') \# Initialize score variablesuser\_wins = 0computer\_wins = 0 \# Loop to ensure the user provides a valid optionwhile True: user\_option = input('paper, scissors, or rock? => ') user\_option = user\_option.lower() \# Rules if user\_option in options: break else: print('Please choose a valid move.') machine\_option = random.choice(options) print('User option =>', user\_option)print('Machine option =>', machine\_option) if user\_option == machine\_option: print('Draw!')elif user\_option == 'rock': if machine\_option == 'scissors': print('Rock wins against scissors') print('User wins!') user\_wins += 1 else: print('Paper wins against rock') print('Machine wins!') computer\_wins += 1elif user\_option == 'paper': if machine\_option == 'rock': print('Paper wins against rock') print('User wins!') user\_wins += 1 else: print('Scissors wins against paper') print('Machine wins!') computer\_wins += 1elif user\_option == 'scissors': if machine\_option == 'paper': print('Scissors wins against paper') print('User wins!') user\_wins += 1 else: print('Rock wins against scissors') print('Machine wins!') computer\_wins += 1 if computer\_wins == 2: print('The real winner is the machine!')elif user\_wins == 2: print('The real winner is the user') ```js import random # Tuple options = ('paper', 'scissors', 'rock') # Initialize score variables user_wins = 0 computer_wins = 0 # Loop to ensure the user provides a valid option while True: user_option = input('paper, scissors, or rock? => ') user_option = user_option.lower() # Rules if user_option in options: break else: print('Please choose a valid move.') machine_option = random.choice(options) print('User option =>', user_option) print('Machine option =>', machine_option) if user_option == machine_option: print('Draw!') elif user_option == 'rock': if machine_option == 'scissors': print('Rock wins against scissors') print('User wins!') user_wins += 1 else: print('Paper wins against rock') print('Machine wins!') computer_wins += 1 elif user_option == 'paper': if machine_option == 'rock': print('Paper wins against rock') print('User wins!') user_wins += 1 else: print('Scissors wins against paper') print('Machine wins!') computer_wins += 1 elif user_option == 'scissors': if machine_option == 'paper': print('Scissors wins against paper') print('User wins!') user_wins += 1 else: print('Rock wins against scissors') print('Machine wins!') computer_wins += 1 if computer_wins == 2: print('The real winner is the machine!') elif user_wins == 2: print('The real winner is the user') ```
![](https://static.platzi.com/media/user_upload/image-9f018e14-81cc-42d1-bd46-0019b7737ec2.jpg)

import random

options = (‘piedra’, ‘papel’,‘tijera’)
computer_option = random.choice(options)
user_option = ()
print(‘PC :’ + computer_option)

while user_option not in options:
user_option = input("Escoge piedra, papel o tijera: ")
user_option = user_option.lower()
if user_option == computer_option:
print(‘Empate!’)
elif user_option == ‘piedra’ and computer_option == ‘papel’:
print(‘papel gana a piedra’)
elif user_option == ‘piedra’ and computer_option == ‘tijera’:
print(‘piedra gana a tijera’)
elif user_option == ‘papel’ and computer_option == ‘piedra’:
print(‘papel gana a piedra’)
elif user_option == ‘papel’ and computer_option == ‘tijera’:
print(‘tijera gana a papel’)
elif user_option == ‘tijera’ and computer_option == ‘piedra’:
print(‘papel gana a piedra’)
elif user_option == ‘tijera’ and computer_option == ‘papel’:
print(‘tijera gana a papel’)

![](https://static.platzi.com/media/user_upload/image-26751f65-ca6e-41a5-9597-cf0757562d72.jpg)

Esto fue lo que logre

#Tijera corta a papel, papel tapa a piedra, piedra aplasta a lagarto, lagarto envenena a Spock, Spock rompe a tijera, tijera decapita a lagarto, lagarto devora a papel, papel desautoriza a Spock, Spock vaporiza a piedra, y como siempre, piedra aplasta a tijera

import random


def obtener_opcion_usuario():
  opciones = ["piedra", "papel", "tijera", "rata", "spock"]

  
  while True:
    opcion_usuario = input("Elige una opción (piedra, papel, tijera, rata, spock): ").lower()
    if opcion_usuario in opciones:
      return opcion_usuario
    else:
      print("Opción inválida. Inténtalo de nuevo.")


def obtener_opcion_computadora():
  opciones = ["piedra", "papel", "tijera", "rata", "spock"]
  return random.choice(opciones)


def determinar_ganador(opcion_usuario, opcion_computadora):
  reglas_para_ganar = {
    "piedra": ["tijera", "rata"],
    "papel": ["piedra", "spock"],
    "tijera": ["papel", "rata"],
    "rata": ["papel", "spock"],
    "spock": ["piedra", "tijera"]
  }

  if opcion_usuario == opcion_computadora:
    return "Empate"
  elif opcion_computadora in reglas_para_ganar[opcion_usuario]:
    return "Ganaste"
  else:
    return "Perdiste"


def jugar():
  opcion_usuario = obtener_opcion_usuario()
  opcion_computadora = obtener_opcion_computadora()

  print(f"Tú elegiste: {opcion_usuario}")
  print(f"La computadora eligió: {opcion_computadora}")

  resultado = determinar_ganador(opcion_usuario, opcion_computadora)
  print(resultado)


if __name__ == "__main__":
  jugar()

def obtener_opcion_usuario():
  opciones = ["piedra", "papel", "tijera", "rata", "spock"]
  while True:
    opcion_usuario = input("Elige una opción (piedra, papel, tijera, rata, spock): ").lower()
    if opcion_usuario in opciones:
      return opcion_usuario
    else:
      print("Opción inválida. Inténtalo de nuevo.")

def obtener_opcion_computadora():
  opciones = ["piedra", "papel", "tijera", "rata", "spock"]
  return random.choice(opciones)

def determinar_ganador(opcion_usuario, opcion_computadora):
  reglas_para_ganar = {
    "piedra": ["tijera", "rata"],
    "papel": ["piedra", "spock"],
    "tijera": ["papel", "rata"],
    "rata": ["papel", "spock"],
    "spock": ["piedra", "tijera"]
  }
  if opcion_usuario == opcion_computadora:
    return "Empate"
  elif opcion_computadora in reglas_para_ganar[opcion_usuario]:
    return "Ganaste"
  else:
    return "Perdiste"

def jugar_varias_veces(numero_de_veces):
  victorias_usuario = 0
  victorias_computadora = 0

  for _ in range(numero_de_veces):
    opcion_usuario = obtener_opcion_usuario()
    opcion_computadora = obtener_opcion_computadora()

    print(f"Tú elegiste: {opcion_usuario}")
    print(f"La computadora eligió: {opcion_computadora}")

    resultado = determinar_ganador(opcion_usuario, opcion_computadora)
    print(resultado)

    if resultado == "Ganaste":
      victorias_usuario += 1
    elif resultado == "Perdiste":
      victorias_computadora += 1

  print(f"\nResultado final después de {numero_de_veces} rondas:")
  print(f"Victorias del usuario: {victorias_usuario}")
  print(f"Victorias de la computadora: {victorias_computadora}")

if __name__ == "__main__":
  jugar_varias_veces(10)
```python import random while True: jugador = input('Elegi: piedra, papel o tijera: ').strip().lower() computadora_opciones = ['piedra', 'papel', 'tijera'] computadora_opcion = random.choice(computadora_opciones) if jugador == 'piedra' or jugador == 'papel' or jugador == 'tijera': if jugador == computadora_opcion: print('Empataron.') break elif jugador == 'piedra' and computadora_opciones == 'tijera': print(f'Ganaste, porque la computadora eligio {computadora_opcion} y vos elegiste {jugador}') break elif jugador == 'tijera' and computadora_opciones == 'papel': print(f'Ganaste, porque la computadora eligio {computadora_opcion} y vos elegiste {jugador}') break elif jugador == 'papel' and computadora_opciones == 'piedra': print(f'Ganaste, porque la computadora eligio {computadora_opcion} y vos elegiste {jugador}') break else: print('Perdiste') break else: print('Por favor, elegi una opcion correcta: ') ```
\##solución `#piedra papel o tijera con condicionales` `import random` `options = ('piedra', 'papel', 'tijera')` `while True:` ` machine = random.choice(options)` ` userChoice = input("Escoge un número:\nPiedra\nPapel\nTijera\nChoice=>")` ` user_option = userChoice.lower();` ` print('User option ->', user_option)` ` print('Computer option ->', machine)` ` ` ` if user_option == machine:` ` print("-----------------------------------")` ` print("¡Empate! vuelve a ingresar el valor")` ` print("-----------------------------------")` ` else:` ` if user_option == 'piedra' and machine == 'papel':` ` print("¡Perdiste! gano la máquina con papel")` ` elif user_option == 'piedra' and machine == 'tijera':` ` print("¡Ganaste! ganaste con piedra")` ` elif user_option == 'papel' and machine == 'piedra':` ` print("¡Ganaste! ganaste con papel")` ` elif user_option == 'papel' and machine == 'tijera':` ` print("¡Perdiste! gano la máquina con tijeras")` ` elif user_option == 'tijera' and machine == 'papel':` ` print("¡Perdiste! gano la máquina con piedra")` ` elif user_option == 'tijera' and machine == 'papel':` ` print("¡Ganaste! ganaste con tijeras")` ` else:` ` print("Escoge una opción correcto")` ` break;`

Este curso es excelente, de a poco he ido aprendiendo, ya no me siento tan inútil…ja,ja,ja…

quiero ponerle los iconos de wasap :)

Estoy sorprendido con la declaracion del ultimo metodo con la tupla. No imagine que eso fuera posible. Esoty feliz de seguir aprendiendo.

Mi forma de hacerlo:

# proyecto piedra papel o tijeras
import random
options = ('piedra', 'papel', 'tijeras') 
user = (input('BIENVENIDO a piedra, papel o tijeras, elige una opcion>> ')).lower()
if not user in options:
     print('elige una opcion valida')
pc = random.choice(options)
print('user=> ', user)
print('pc=> ', pc)

if user == pc:
     print('EMPATE')
elif user == 'piedra' and pc == 'tijeras' or user == 'papel' and pc == 'piedra' or user == 'tijeras' and pc == 'papel':
    print('user GANA')
else : 
     print('user PIERDE')

Le agregue algo a esa string del if cuando no es valida

if not user_option in options:
  print( f'Esta opción {user_option} es inválida. Por favor ingrese piedra, papel o tijera.')```

<#juego de piedra, papel o tijera
import random

print("Juego de piedra, papel o tijera")

option = ("piedra" , "papel" , "tijera")
user_option = input("Ingrese su opcion: ").lower()
computer_option = random.choice(option)

if user_option == random.choice(computer_option):
  print("Empate")
elif user_option == "piedra":
  if computer_option == "tijera":
    print("Piedra gana a tijera")
    print("GANASTE")
  else:
    print("Papel gana a piedra")
    print("PERDISTE")
elif user_option == "papel":
  if computer_option == "piedra":
    print("Papel gana a piedra")
    print("GANASTE")
  else:
    print("tijera gana a papel")
    print("PERDISTE")
elif user_option == "tijera":
  if computer_option == "papel":
    print("tijera gana a papel")
    print("GANASTE")
  else:
    print("piedra gana a tijera")
    print("PERDISTE")
else:
  print("Opcion no valida")> 
Hice un codigo un poco más corto: ```python import random options = ('piedra', 'papel', 'tijera') number_position = (1, 2, 3) print(''' Juego de Piedra Papel o Tijera Escoje una de estas 3 opciones: 1. Piedra 2. Papel 3. Tijera''') user_choice = int(input('Yo escojo con el numero: ')) computer_choice = random.choice(number_position) if user_choice == computer_choice: print('Es un empate, ambos escojieron', options[computer_choice-1]) elif computer_choice == 1 and user_choice == 3 and (computer_choice, user_choice) != (3,1): print('Has perdido! vs', options[computer_choice-1]) elif user_choice > computer_choice or (computer_choice, user_choice) == (3,1): print('Has ganado! con', options[user_choice-1], f'vs {options[computer_choice-1]}') else: print('Has perdido! contra', options[computer_choice-1]) ```import random options = ('piedra', 'papel', 'tijera') number\_position = (1, 2, 3) print(''' Juego de Piedra Papel o Tijera Escoje una de estas 3 opciones: 1\. Piedra 2\. Papel 3\. Tijera''') user\_choice = int(input('Yo escojo con el numero: ')) computer\_choice = random.choice(number\_position) if user\_choice == computer\_choice: print('Es un empate, ambos escojieron', options\[computer\_choice-1]) elif computer\_choice == 1 and user\_choice == 3 and (computer\_choice, user\_choice) != (3,1): print('Has perdido! vs', options\[computer\_choice-1]) elif user\_choice > computer\_choice or (computer\_choice, user\_choice) == (3,1): print('Has ganado! con', options\[user\_choice-1], f'vs {options\[computer\_choice-1]}') else: print('Has perdido! contra', options\[computer\_choice-1])
Desde que iniciamos con el tema de tuplas me preguntaba para que servirian, ahora entiendo!, gracias
import random

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

user = input("Elige una opción: piedra, papel o tijera ").lower();
if not user in options:
    print("Debiste escoger entre piedra, papel o tijera.");

pc = random.choice(options);

if user == pc:
    print(pc);
    print("Empate.");
elif user == "piedra":
    if pc == "papel":
        print(pc);
        print("Perdiste.");
    if pc == "tijera":
        print(pc);
        print("Ganaste.");
elif user == "papel":
    if pc == "piedra":
        print(pc);
        print("Ganaste.");
    if pc == "tijera":
        print(pc);
        print("Perdiste.");
elif user == "tijera":
    if pc == "piedra":
        print(pc);
        print("Perdiste.");
    if pc == "papel":
        print(pc);
        print("Ganaste.");
else:
    print("Entrada invalida.");

Lo estaba planteando así mientras decía que había que agregar algo por si el usuario ingresaba algo no válido y se ejecuta bien.
A mí parecer es más amigable al leerlo de esta manera pero es muy relevante dónde se ubique el not en este caso?

Esta fue la lógica que utilice, lo importante es que funciona correctamente.

<import random

def numeroAleatorio(min, max):
  return round(random.random()*((max-1) - min + 1) + min)


def jugada (eleccion):
  resultado = ""
  if eleccion == 0: 
    resultado = "Piedra 🪨"
  elif eleccion == 1:
    resultado = "Papel 📃"
  elif eleccion == 2:
    resultado = "Tijera ✂️"
  else:
    resultado= "Valor Incorrecto"
  return resultado

#Inicio Programa.
opctions = ["piedra","papel","tijera"]
victorias = 0
derrotas = 0
while (victorias<3 and derrotas < 3) :
  Usuario = input("Elija piedra, Papel o Tijera: ")
  if Usuario not in opctions:
    print("Esa opcion no existe, digita de nuevo!!! ")
  else :
   indexUsuario = opctions.index(str(Usuario.lower()))
   pc = numeroAleatorio(0,2)
   print("Tu haz elegido ", jugada(indexUsuario)," y PC ha elegido ",jugada(pc))
   if  indexUsuario == pc:
    print("Empate!!!")
   elif (indexUsuario == 0 and pc == 2) or (indexUsuario == 1 and pc == 0) or (indexUsuario ==2 and pc ==1):
    print("Haz ganado este combate!")
    victorias+=1
   else:
    print("Haz perdido este combate!")
    derrotas+=1
print("Ganaste ", victorias ," veces. Perdiste ",derrotas, " veces. \nFin del Juego")> 

Espero les ayude compañeros!!!

hola les comparto mi codigo comentado

from random import choice

#Forma 1, de que la computadora escoja un valor al azar 
#computer_option = choice(['piedra', 'papel', 'tijera']) #con esto la computadora, escoge una opcion aleatoria

#Forma 2-----------
options = ('piedra', 'papel', 'tijera')  #con una tupla, se puede dejar las opciones predefinidas que no se pueden cambiar
computer_option = choice(options) #esto nos permite escoger una opcion a azar, de la tupla "options"

#otra forma de usar random es la siguiente
#import random 
#computer_option = random.choice(options)

user_option = input('Piedra, papel o tijera => ')
user_option = user_option.lower()

if  not user_option in options: #con una tupla se puede verificar una opcion
  print('esa opcion no es valida')
  exit() #termina el programa

print('User escogio: ', user_option)
print('Computador escogio: ', computer_option)
#computer_option = 'piedra' #la computadora siempre elige piedra

if user_option == computer_option:
  print('Empate!')
elif user_option == 'piedra':
  if computer_option == 'tijera':
    print('piedra gana a tijera')
    print('User gano')
  else:
    #print('escoje una opcion, por favor') 
    print('papel gana a tijera')
    print('Computer gano!')
  
elif user_option == 'papel':
  if computer_option == 'piedra':
    print('papel gana a piedra')
    print('User gano')
  else:
    print('tijera gana a papel')
    print('Computer gana')
elif user_option == 'tijera':
    if computer_option == 'papel':
      print('tijera gana a papel')
      print('Usuar gano')
    else:
      print('piedra gana a tijera')
      print('Computer gano')```
import random

options = ('1 para Piedra', '2 para Papel', '3 para Tijera')
options_random = ('1','2','3')
name_user = ()
name_computer = ()

print(options)
user_option = input("Ingresa la mejor opcion => ")
if not user_option in options_random:
  print('hiciste una mala eleccion')
  
computer_option = random.choice(options_random)

if user_option == '1':
  print('user option is ===> Piedra')
elif user_option == '2':
  print('user option is ===> Papel')
else:
  print('user option is ===> Tijera')
#print('user option is ===>', user_option)
if computer_option == '1':
  print('user option is ===> Piedra')
elif computer_option == '2':
  print('user option is ===> Papel')
else:
  print('user option is ===> Tijera')
#print('computer option is ===>', computer_option)

if user_option == computer_option:
  print("Empate")
elif user_option == "3":
  if computer_option == "2":
    print("Genial Ganaste")
  else:
    print("Te gano la computadora")
elif user_option == "2":
  if computer_option == "1":
    print("Genial Ganaste")
  else:
    print("Te gano la computadora")
elif user_option == "1":
  if computer_option == "3":
    print("Genial Ganaste")
  else:
    print("Te gano la computadora")

Actualización del juego Piedra, Papel o Tijera.

import random

op_usuario = input('piedra, papel o tijera? ').lower().strip()
opciones = (‘piedra’, ‘papel’, ‘tijera’) # Tupla de opciones
op_compu = random.choice(opciones) # Elección aleatoria

if op_usuario in opciones:
—if op_usuario == op_compu:
------print(‘Compu tiene:’, op_compu)
------print(‘Empate’)
—elif op_usuario == ‘piedra’ and op_compu == ‘tijera’:
------print(‘Compu tiene:’, op_compu)
------print(‘Usuario Gana!’)
—elif op_usuario == ‘papel’ and op_compu == ‘piedra’:
------print(‘Compu tiene:’, op_compu)
------print(‘Usuario Gana!’)
—elif op_usuario == ‘tijera’ and op_compu == ‘papel’:
------print(‘Compu tiene:’, op_compu)
------print(‘Usuario Gana!’)
—else:
------print(‘Compu tiene:’, op_compu)
------print(‘Compu Gana!’)
else:
—print(‘Sólo elegir de las opciones válidas.!’)

En los IF sólo anoté los casos ganadores para el usuario usando AND

print("JUEGO DE PIEDRA, PAPEL o TIJERA")
participante = input("Hola, ¿como te llamas? ")
name = participante.title()
print("Hola",name,", juguemos. \nEstas son las alternativas:")
print("-piedra \n-papel \n-tijera")

seleccione = input(name + " Escribe la alternativa que seleccionaste: ")
alternativa = seleccione.lower()
tipo = ("piedra", "papel", "tijera")

import random
num_computer = random.choice(tipo) #selecciona de forma random un alternativa de la tupla tipo
print("La computadora selecciono la alternativa:", num_computer)

if alternativa == "piedra" and num_computer == "papel":
    print("papel gana a piedra, Tu pierdes)")
elif alternativa == "piedra" and num_computer == "tijera":
    print("piedra gana a tijera, ¡¡Ganaste!!")
elif alternativa == "papel" and num_computer == "piedra":
    print("papel gana a piedra, ¡¡Ganaste!!")
elif alternativa == "papel" and num_computer == "tijera":
    print("tijera gana a papel, Tu pierdes")
elif alternativa == "tijera" and num_computer == "piedra":
    print("piedra gana a tijera, Tu pierdes")
elif alternativa == "tijera" and num_computer == "papel":
    print("tijera gana a papel, ¡¡Ganaste!!")
elif alternativa == num_computer:
    print("La computadora y tu seleccionaron la misma alternativa, EMPATE!!")
else:
    print("Usted no selecciono una alternativa adecuada, intentelo otra vez")

Resultado:

El archivo que adjuntan para descargar no es el mismo que enseñan el profesor, generando confusiones

Hasta este punto excelente… Gracias Profe Nico

<
#Juego PIEDRA - PAPEL O TIJERA
import random
options = ('piedra', 'papel', 'tijera')

print('Bienvenido al juego PIEDRA - PAPEL - TIJERA\n')
user = input('User option:\n\nPIEDRA\nPAPEL\nTIJERA\nSelección: ')

if user in options:

    #Selecciona de manera aleatoria los datos de la tupla options
    computer = random.choice(options)

    print('\nComputer option:',computer,'\n')

    user1 = user.lower()
    print(f'Seleccionaste {user1} y computer {computer}')
    if user1 == computer:
        print('Es un empate')
    elif user1 == 'papel' and computer == 'tijera':
        print('Computer gana')
    elif user1 == 'papel' and computer == 'piedra':
        print('usuario gana')
    elif user1 == 'piedra' and computer == 'tijera':
        print('Usuario gana')
    elif user1 == 'piedra' and computer == 'papel':
        print('Computer gana')
    elif user1 == 'tijera' and computer == 'papel':
        
        print('Usuario gana')
    else:
        print('Computer gana')
else:
    print(f'{user} no es una opción valida')
> 

import random

option = (‘piedra’,‘papel’, ‘tijera’)

user_option=input('piedra,papel o tijera => ')
user_option = user_option.lower()
computer_option = random.choice(option)

####computer_option='piedra’
print(‘user_option=>’,user_option)
print(‘computer option’,computer_option)

if user_option== computer_option:
print(‘empate!’)
elif user_option==‘piedra’:

if computer_option == ‘tijera’:
print (‘piedra gana a tijera’)
print (‘user gano!’)
else:
print (‘papel gana a piedra’)
print (‘computer gano!’)
elif user_option==‘papel’:
if computer_option == ‘piedra’:
print (‘piedra gana a piedra’)
print (‘user gano!’)

else:
print (‘tijera gana a papel’)
print (‘computer gano!’)

elif user_option==‘tijera’:
if computer_option == ‘papel’:
print (‘piedra gana a piedra’)
print (‘user gano!’)
else:
print(‘piedra gana a tijera’)
print(‘computer gano!’)

import random

opciones = (‘piedra’, ‘papel’, ‘tijera’)

user = input('Elige entre: Piedra, Papel o Tijera: ')
user = user.lower()

pc_option = random.choice(opciones)

print(‘Elegiste:’,user)

while True:
if not user in opciones:
print(f’La Opcion {user} no esta disponible’)
break;

print(‘El rival eligio:’,pc_option)

if user == pc_option:
print(‘Es un empate!!’)
elif user == ‘piedra’:
if pc_option == ‘tijera’:
print(‘Piedra gana a Tijera’)
print(‘Has ganado!!’)
else:
print(‘Papel gana a Piedra’)
print(‘Lo siento, has perdido :c’)
elif user == ‘papel’:
if pc_option == ‘tijera’:
print(‘Tijera gana a Papel’)
print(‘Lo siento has perdido :c’)
else:
print(‘Papel gana a Piedra’)
print(‘Has ganado c:’)
elif user == ‘tijera’:
if pc_option == ‘papel’:
print(‘Tijera gana a Papel’)
print(‘Has Ganado!! c:’)
else:
print(‘Piedra gana a Tijera’)
print(‘Lo siento has perdido :c’)

La validación de sí el usuario ingreso una opción correcta también puede ir al inicio o final del ciclo de condicionales IF-ELIF. Si es al final sería en un ELSE. Sin embargo, el programa “tarda más” en saber si la opción es valida, ya que tiene que recorrer todas las comparaciones hasta “saber” que el usuario ingreso una opción no valida.

<import random

user = input('¿Piedra, Papel o Tijera? ')
user = user.lower()
compu = ('píedra', 'papel', 'tijera')
random_compu = random.choice(compu)

if (user == random_compu): 
	print("Empate")
	
elif(user == "piedra"): 
	if random_compu == 'tijera':
		print("Piedra gana a tijera")
		print("Usuario gano")
	else: 
		print("Papel gana a piedra")
		print("Compu gano")

elif(user == 'papel'): 
	if(random_compu == 'piedra'):
		print("Papel gana a piedra \n Usuario gano")
	else: 
		print("Tijera gana a papel \n Compu gana")

elif(user == "tijera"): 
	if random_compu == "papel": 
		print('Tijera gana a papel \n Usuario gana')
	else: 
		print("Piedra gana a tijera \n Compu gana")

else:
	print("Opción no valida")

print(f'Usuario ingreso {user}')
print(f'Compu eligio {random_compu}')> 

buen ismo gracias

it’s ok.

Con esta línea de código el programa vuelve a pedir la opción del usuario hasta cumplir con la condición:

while not user_option in options:
user_option = input('Ingrese un opción valida: ').lower()

Se dieron cuenta que si pones la variable options como lista [‘piedra’,‘papel’,‘tijera’] , tambien funciona el programa?

JUEGO: PIEDRA, PAPEL O TIJERA
NOTA: “\n” lo utilizo para saltar una línea al mostrar los resultados

import random

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

#Obtener jugadas de la PC
computer_option = random.choice(plays)

#Obtener jugadas del usuario
user_option = input("Elige: piedra, papel o tijera: ")

if user_option.lower().strip() in plays:
  if computer_option == user_option:
    result = "¡ES UN EMPATE!"
  elif computer_option == plays[0]:
    if user_option == plays[1]:
      result = "¡TU GANASTE!"
    else:
      result = "¡COMPUTADORA GANA!" 
  elif computer_option == plays[1]:
    if user_option == plays[0]:
      result = "¡COMPUTADORA GANA!"
    else:
      result = "¡TU GANASTE!"
  elif computer_option == plays[2]:
    if user_option == plays[0]:
      result = "¡TU GANASTE!"
    else:
      result = "¡COMPUTADORA GANA!"
  print(f"Usuario = {user_option}\nComputadora = {computer_option} \n")
  print(result)
else:
  print("\nOPCIÓN SELECCIONADA ES INCORRECTA")

Dejo mi aporte.

  • El promp solo acepta las opciones que le pido, si no se culple vuelve a pedirlo
  • Contador de puntos.
  • Muestra que opcion elijio la maquina
  • Tiene la opcin de seguir jugando o salir del juego.
import random
import time

options = ('piedra', "papel", "tijera")
points_user = 0
points_machine = 0

def get_input(prompt, options):
    while True:
        value = input(prompt).lower()
        if value.isdigit():
            print("Por favor, ingresa un string, no un número.")
        elif value in options:
            return value
        else:
            print(
                f"Por favor, ingresa una de las siguientes opciones: {', '.join(options)}")


def game(user, machine):
    global points_user, points_machine
    if user == machine:
        print('empate')
    elif user == 'piedra' and machine == "papel":
        points_machine += 1
        print("Perdiste :(")
    elif user == "papel" and machine == "tijera":
        points_machine += 1
        print("Perdiste!! :(")
    elif user == "tijera" and machine == "piedra":
        points_machine += 1
        print("Perdiste :(")
    else:
        points_user += 1
        print("Ganaste")

while True:
    random_choice = random.choice(options)
    value = get_input("¿Piedra, papel o tijera? ", options)
    print(f'''
          ({points_user})                     ({points_machine})
      Has elegido:  \/\/\/\/  Maquina eligió: 
        {value}                   {random_choice}''')
    # timer
    for i in range(1, 4):
        print(i*".")
        time.sleep(1)
    # verifica quien gano
    game(value, random_choice)

    # 
    while True:
        play_again = input("¿Quieres seguir Jugando? (s/n): ").lower()
        if play_again in ['n','s']:
            break
        else:
            print("Ingresa 's' para continuar y 'n' para salir")

    if play_again == "n":
        break

print("Hasta luego!!!")