Introducci贸n

1

El Zen de Python

Conjuntos

2

Sets

3

Modificando conjuntos

4

Operaciones con conjuntos

5

Playgrounds: Elimina elementos duplicados usando conjuntos

Comprehensions

6

List Comprehension

7

Dictionary Comprehension

8

Dictionary Comprehension: condition

9

Playgrounds: Crea una lista usando List Comprehension

10

Lists vs. Tuples vs. Sets

Funciones

11

Funciones

12

Funciones: return

13

Par谩metros por defecto y m煤ltiples returns

14

El scope

15

Refactor game

16

Playgrounds: Tienda de Tecnolog铆a

17

Funciones an贸nimas: lambda

18

Higher order function: una funci贸n dentro de otra funci贸n

19

Map

20

Map con diccionarios

21

Reto: map con inmutabilidad

22

Playgrounds: Multiplica todos los elementos por dos

23

Filter

24

Playgrounds: Retorna solo palabras de 4 letras y m谩s

25

Reduce

M贸dulos

26

M贸dulos

27

Mis propios m贸dulos

28

M贸dulos como scripts: __name__ y __main__

29

Paquetes

30

Playgrounds: Calcular la suma de todas las compras

Manipulaci贸n de archivos y errores

31

Iterables

32

Errores en Python

33

Manejo de excepciones

34

Playgrounds: Captura la excepci贸n: ZeroDivisionError

35

Leer un archivo de texto

36

Escribir en un archivo

37

Leer un CSV

38

Playgrounds: Lee un CSV para calcular el total de gastos

Gr谩ficas en Python

39

Creando una gr谩fica

40

Reto: graficando la poblaci贸n de un pa铆s

41

Reto: graficando la poblaci贸n mundial

Pr贸ximos pasos

42

隆Conoce otros proyectos de este curso!

43

Reconoce tu proceso y certif铆cate

44

Toma el Curso de PIP y Entornos Virtuales con Python

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Refactor game

15/44
Recursos

Aportes 263

Preguntas 25

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Re armar el programa en base a un proyecto anterior termina siendo confuso. Era mejor empezar desde cero, uno se pasa mas tiempo tratando de seguir el armado de este Frankestein que aplicando lo aprendido hasta ahora.

Mi aporte:

import random 

print("""
      [ 馃 Bienvenido al juego Piedra, Papel o tijera 馃檵]
                  >>> Ingresa una opci贸n <<<
      """)


def choose_options():
    options = ('piedra', 'papel', 'tijera')
    user_option = input('>>> Piedra, papel o tijera => ').lower()
   
    if not user_option in options:
        print('Esa opci贸n no es valida')
        #continue
        return None, None 
    
    computer_option = random.choice(options)

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


def check_rules(user_option, computer_option, user_wins, computer_wins):
    if user_option == computer_option:
        print('Empate!\n')
    elif user_option == 'piedra':
        if computer_option == 'tijera':
            print('馃 Piedra gana a tijera 鉁傦笍')
            print('隆User gana!\n')
            user_wins += 1
        else:
            print('馃搫 Papel gana a piedra 馃')
            print('隆Computer gana!\n')
            computer_wins += 1
    elif user_option == 'papel':
        if computer_option == 'piedra':
            print('馃搫 Papel gana a piedra 馃')
            print('隆User gana!\n')
            user_wins += 1
        else:
            print('鉁傦笍 Tijera gana a papel 馃搫')
            print('隆Computer gana!\n')
            computer_wins += 1
    elif user_option == 'tijera':
        if computer_option == 'papel':
            print('鉁傦笍 Tijera gana a papel 馃搫')
            print('隆User gana!\n')
            user_wins += 1
        else:
            print('馃 Piedra gana a tijera 鉁傦笍')
            print('隆Computer gana!\n')
            computer_wins += 1
            
    return user_wins, computer_wins


def check_winner(user_wins, computer_wins):
    
    print(f'''
    馃 Computer wins: {computer_wins}
    馃檵 User wins: {user_wins}
            ''')
    
    if user_wins == 3:
        print('馃帠锔 El ganador es User 馃帠锔')
        exit()
        
    if computer_wins == 3:
        print('馃帠锔 El ganador es Computer 馃帠锔')
        exit()


def run_game():
    
    computer_wins = 0 
    user_wins = 0
    rounds = 1

    while True:
        print('***' * 10)
        print('Round ', rounds)
        print('***' * 10)

        rounds += 1
              
        user_option, computer_option = choose_options()
        user_wins, computer_wins = check_rules(user_option, computer_option,user_wins, computer_wins)
        check_winner(user_wins, computer_wins) 
        
                    
run_game()

Extra帽o a Facundo, este men no sabe explicar bien.

Los cursos anteriores con el profe Facundo, eran excelentes, pero estos est谩n increiblemente aun mejor! maravilloso, excelente muestra de que Platzi implementa mejora ocntinua.

Aqu铆 les dejo otra opci贸n. Ejemplo de como las matem谩ticas nos pueden ayudar a reducir c贸digo

Con algo de Art ASCII:

Me gusta hacer los ejercicios que propone el maestro antes de ver el video.

Si me sale igual que a 茅l, confirmo mi conocimiento.
Si me sale distinto, aprendo algo nuevo.
Si no me sale, no me frustro y veo la clase para ver como se resolv铆a el problema que no me dej贸 avanzar.

En cualquier caso, salgo ganando 馃榿. 100% recomendado 馃憣

Es muy feo refactorizar, pero mas vale acostumbrarse, es parte del trabajo. Les dejo la funci贸n que faltaba al reto

def check_wins(user_wins, computer_wins):
  if computer_wins == 2:
    print('El ganador es la computadora')
    exit()
  
  if user_wins == 2:
    print('El ganador es el usuario')
    exit()

Esta clase se fue de las manos :S

Sin duda la identaci贸n es un tema a tener muy en cuenta a la hora de realizar nuestros c贸digos.

Mi aportaci贸n agregando el def check_winner:

import random


def choose_options():
  options = ('piedra', 'papel', 'tijera')
  user_option = input('piedra, papel o tijera =>')
  user_option = user_option.lower()
  
  if not user_option in options:
    print('No es una opcion valida')
    # continue
    return None, None

  computer_option = random.choice(options)

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

def check_rules(user_option, computer_option, user_wins, computer_wins):
  if user_option == computer_option:
    print('Empate!')
  elif user_option == 'piedra':
    if computer_option == 'tijera':
      print('piedra gana a tijera')
      print('user gano!')
      user_wins += 1
    else:
      print('Papel gana a piedra')
      print('Computer gano!')
      computer_wins +=1
  elif user_option == 'papel':
    if computer_option == 'piedra':
      print('papel gana a piedra')
      print('user gano!')
      user_wins += 1
    else:
      print('Tijera gana a papel')
      print('Computer gano!')
      computer_wins +=1
  elif user_option == 'tijera':
    if computer_option == 'papel':
      print('Tijera gana a papel')
      prin('User gano')
      user_wins +=1
    else:
      print('piedra gana a tijera')
      print('Computer gano!')
      computer_wins +=1
  return user_wins, computer_wins

def check_winner(user_wins, computer_wins):
    if computer_wins == 2:
      print('El ganador es la computadora')
      exit()
    if user_wins == 2:
      print('El ganador es el usuario')
      exit()

def run_game():
  computer_wins = 0
  user_wins = 0
  rounds = 1
  while True:
    print('*' * 10)
    print('ROUND', rounds)
    print('*' * 10)
  
    print('computer_wins', computer_wins)
    print('user_wins', user_wins)
    rounds += 1

    user_option, computer_option = choose_options()
    user_wins, computer_wins = check_rules(user_option, computer_option,user_wins, computer_wins)
    check_winner(user_wins, computer_wins)
run_game()

A mi pareci贸 bien, muy ajustado a la realidad en cuento a lo que corresponde a retomar c贸digo y refactorizar.

En muchas ocasiones tenemos que hacer cambios a c贸digo que hemos hecho meses atr谩s y eso es dif铆cil.

Y pensaba que en el curso anterior ya habiamos logrado lo m谩ximo cno el juego de piedra papel o tijera

Esta clase es la primera que no me gust贸, es mejor cuando se empieza desde 0 los c贸digos, hay cosas que uno no recuerda del todo bien y al modificar un c贸digo viejo, uno se pierde m谩s 馃槶

no se podia hacer ese ejemplo desde cero? porque no entendi nada nada, quitar poner modificar asi no entendi

No me hab铆a tocado alguna clase con tantas quejas, recuerden que el ingl茅s es indispensable para crecer en este 谩mbito (Yo dir铆a que ya es indispensable para cualquier profesi贸n en este mundo globalizado); re-factorizar es necesario para trabajar en cualquier empresa con software existente (se llama dar mantenimiento al c贸digo) no siempre se podr谩 empezar desde cero ya que implica costos elevados y tiempo; adaptarse y eliminar esos sesgos cognitivos que impiden nuestro crecimiento (Si pueden inviertan en su salud mental).

Aqu铆 les dejo un articulo que les puede ayudar.
(https://www.psiquion.com/blog/sesgos-cognitivos#:~:text=Los sesgos cognitivos son un,hora de interpretar la realidad.)

No se desanimen, y piensen positivo (pero no se excedan que tambi茅n hace da帽o jajaja)

este curso y con todo en ingles queda uno loco

No entendi nada

Todo un reto esto de refactorizar pero ayuda a tener otra perspectiva 鉁

Les comparto mi c贸digo refactorizado, inclu铆 una validaci贸n para que no muestre como Empate las opciones no v谩lidas (que retornan None, None) y la funci贸n check_winner

# Refactor game

import random

def choose_options():

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

  # Solicitamos la opcion al usuario
  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")
    #continue
    return None, None
  
  # Seleccionamos la opci贸n de manera aleatoria
  computer_option = random.choice(options)
  print("computer => ", computer_option)

  # La funcion retorna multiples valores
  return user_option, computer_option

def check_rules(user_option, computer_option, user_wins, computer_wins):
  if user_option == computer_option and (user_option != None and computer_option != None):
    print("Empate!")
  elif user_option == "piedra":
    if computer_option == "tijera":
      print(f"{user_option} gana a {computer_option}. User gan贸!")
      user_wins += 1
    else:
      print(f"{computer_option} gana a {user_option}. Computer gan贸!")
      computer_wins += 1
  elif user_option == "papel":
    if computer_option == "piedra":
      print(f"{user_option} gana a {computer_option}. User gan贸!")
      user_wins += 1
    else:
      print(f"{computer_option} gana a {user_option}. Computer gan贸!")
      computer_wins += 1
  elif user_option == "tijera":
    if computer_option == "papel":
      print(f"{user_option} gana a {computer_option}. User gan贸!")
      user_wins += 1
    else:
      print(f"{computer_option} gana a {user_option}. Computer gan贸!")
      computer_wins += 1
  
  return user_wins, computer_wins

def check_winner(user_wins, computer_wins):
  if computer_wins == 2:
      print("El ganador es la computadora!")
      exit()
  if user_wins == 2:
      print("El ganador es el usuario!")
      exit()

def run_game():
  # Contadores de rondas ganadas
  computer_wins = 0
  user_wins = 0
  # Contador de rondas
  rounds = 1
  
  while True:

    print("*" * 10)
    print("ROUND", rounds)
    print("*" * 10)
  
    print("computer_wins =>", computer_wins)
    print("user_wins =>", user_wins)

    # Incrementamos el contador de rondas
    rounds += 1
  
    # Almacenamos los valores retornados por la funcion
    user_option, computer_option = choose_options()
  
    user_wins, computer_wins = check_rules(user_option, computer_option, user_wins, computer_wins)

    check_winner(user_wins, computer_wins)

run_game()

Me parece muy 煤til que se definan funciones y que se agrupe las l铆neas de c贸digo en cada funci贸n y que no queden l铆neas sueltas. Como Python es el primer lenguaje que estoy aprendiendo, supongo que cuando se elabora programas m谩s complejos se elabora primero los alcances de cada bloque. Hice unos bloques para entender mejor el c贸digo del juego piedra, papel o tijera.

![](

me ha gustado mucho el curso, sin embargo, esta clase se puede prestar para confusi贸n por la indentaci贸n al corregir un c贸digo como este

Es bastante confuso todos los pasos y cortes de codigo que hay para el uso de de las funciones, considero es mejor hacer el ejercicio desde 0 para aprender mejor

Excelente ejercicio, realizar una factorizaci贸n es de las mejores maneras de aprender.
Este ejercicio toma su tiempo entenderlo, sobre todo entender el flujo de las variables y c贸mo van cambiando.

Aqu铆 esta mi aporte mejorado con func y variables globales, es un appraoch diferente:

import random
# Define the options
options = ('piedra', 'papel', 'tijera')

while True:

  counter = 0
  empate = 0
  perdiste = 0
  ganaste = 0
  
  # Define the results dictionary
  results = {
    'piedra': {
      'piedra': 'empate',
      'papel': 'perdiste',
      'tijera': 'ganaste'
    },
    'papel': {
      'piedra': 'ganaste',
      'papel': 'empate',
      'tijera': 'perdiste'
    },
    'tijera': {
      'piedra': 'perdiste',
      'papel': 'ganaste',
      'tijera': 'empate'
    }
  }
  
  def preprocess_game(chosen_option):
    global empate, perdiste, ganaste
    random_value = random.choice(options)
    result = results[chosen_option][random_value]
    if result == 'empate':
      empate += 1
    elif result == 'perdiste':
      perdiste += 1
    else:
      ganaste += 1
    print(
      f"{result}, elegiste {chosen_option} y la m谩quina eligi贸 {random_value}."
    )
  
  # Prompt the user to choose an option
  for i in range(3):
    print('*' * 10)
    print('ROUND ', counter + 1)
    print('*' * 10)
    for index, chosen_option in enumerate(options):
      print(f"{index+1}. {chosen_option}")
  
    # Get user input and convert to integer
    while True:
      try:
        option_selected = int(
          input("Ingresa el n煤mero de la opci贸n que deseas: "))
        counter += 1
        if option_selected < 1 or option_selected > len(options):
          print(
            "Ese n煤mero no es una opci贸n v谩lida. Por favor, ingresa un n煤mero del 1 al 3."
          )
        if counter <= 3:
          preprocess_game(options[option_selected - 1])
          #print(empate, perdiste, ganaste)
        if counter == 3:
          # Get the variable name with the maximum value
          max_var = max(['empate', 'perdiste', 'ganaste'], key=locals().get)
          
          # Check if the machine or the player won
          if max_var == 'empate':
            print('\033[33m' + 'Hubo un empate por lo que volveras a jugar' + '\033[0m')
            break
            
          elif max_var == 'perdiste':
            print('\033[31m' + 'La m谩quina gan贸' + '\033[0m')
            break
          else:
            print('\033[32m' + 'Ganasteeeee!' + '\033[0m')
            # Print the results
            print("\nResultados finales:\n")
            print(f"\033[33mEmpates:\033[0m {empate}")
            print(f"\033[31mPerdiste:\033[0m {perdiste}")
            print(f"\033[32mGanaste:\033[0m {ganaste}")
            break
        else:
          break
      except ValueError:
        print("Ese no es un n煤mero. Por favor, ingresa un n煤mero del 1 al 3.")
        
  # check if is empate to iterate again
  if max_var != 'empate':
    # exit the while loop
    break

En mi caso, decid铆 hacer algunos cambios en la l贸gica del combate (utilic茅 la l贸gica que Freddy Vega usa en el curso de introducci贸n a la programaci贸n), adem谩s de a帽adirle una lista de narradores y una de oponentes que son elegidos al azar para hacer m谩s interactivo y visual el proyecto. Mi meta es hacer m谩s complejo este juego conforme avance en los cursos:

"""
PIEDRA, PAPEL o TIJERAS MK2

Esta es una versi贸n mejorada del juego realizado en el curso b谩sico de Python mediante la implementaci贸n de funciones, alcance(scope) y 
"""

import random as rd

opponents = ('SHELLMINATOR', 'K-REN 9000', 'PYMASTER 420')
narrators = ('BOB THOMPSON', 'COTTON MCKNIGHT', 'JOHN DOE')

# ASIGNACION DE PERSONAJES:
narrator = rd.choice(narrators)
user_name = input(f'[{narrator}]: 驴C贸mo te llaman en las calles?\n> ').capitalize()
opponent = rd.choice(opponents)

# FUNCIONES:
def weapon_select():
  weapons = ('piedra', 'papel', 'tijeras')
  user_weapon = input(f'[{narrator}]: 驴Qu茅 escoger谩 "{user_name}", piedra, papel o tijeras?\n> ').lower()
  
  if not user_weapon in weapons:
    print(f'[{narrator}]: 驴PERO QU脡EEE? {user_name} ESCOGI脫 {user_weapon}, lo cual no es una opci贸n v谩lida')
    return None, None
  
  print(f'[{narrator}]: {user_name} escogi贸 隆隆隆{user_weapon}!!!')
  opponent_weapon = rd.choice(weapons)
  print(f'[{narrator}]: {opponent} escogi贸 隆隆隆{opponent_weapon}!!!')
  return user_weapon, opponent_weapon

def duel(user_weapon,opponent_weapon,user_wins,opponent_wins):

  if user_weapon == opponent_weapon:
    print(f'[{narrator}]: 隆隆ESTO ES UN EMPATE!!')
  elif user_weapon == 'piedra' and opponent_weapon == 'tijeras':
    print('GANASTE')
    user_wins +=1
  elif user_weapon == 'papel' and opponent_weapon == 'piedra':
    print('GANASTE')
    user_wins +=1
  elif user_weapon == 'tijeras' and opponent_weapon == 'papel':
    print('GANASTE')
    user_wins +=1
  else:
    print('PERDISTE')
    opponent_wins +=1

  return user_wins, opponent_wins

def check_scores(opponent_score, user_score):
  print(f'[{narrator}]: ESTE ES EL MARCADOR ACTUAL:\n[{user_name}]: {user_score}\n[{opponent}]: {opponent_score}')
  if opponent_score == 2:
    print(f'{opponent} GAN脫')
  elif user_score == 2:
    print(f'{user_name} GAN脫')
    
def game():
  user_wins = 0
  opponent_wins = 0
  rounds = 1

  while rounds < 3:
    user_weapon, opponent_weapon = weapon_select()
    user_wins, opponent_wins = duel(user_weapon,     opponent_weapon,user_wins,opponent_wins)

    check_scores(opponent_wins, user_wins)
    rounds += 1

# INICIO DEL JUEGO:
game()

Mi mente al rearmar lo que ya hab铆a entendido bien xD

Mi 煤nico cambio sugerido al c贸digo del juego por el momento es modificar la impresi贸n del contador, con las veces que gana la computadora y el usuario, me parece que se entiende mejor ponerlo al final, de lo contrario el resultado no llega a 2.

como que tenia prisa!!!

No entiendo nada. Bah, en realidad s铆 entiendo lo que hace pero no entiendo c贸mo se da cuenta de todas esas cosas. Puedo copiar el c贸digo e ir siguiendo lo que dice el profe, pero falta un poco m谩s de explicaciones con respecto a porqu茅 decide tal o cual cosa.

en esta clase no entendi NADAAAAA, mala idea escoger un codigo largo.

salio mejor, reescribir el juego que solo modificarlo

Entiendo lo que el profe empez贸 hacer, pero debi贸 hacerlo desde el principio del curso, ya que ven铆amos viendo otros temas,

o por lo menos partir la clase en funciones m谩s peque帽as

Que tristeza yo quede mas perdido no entend铆 nada para mi fue mas confusi贸n

Esta es ni soluci贸n

import random

OPTION = ('piedra', 'papel', 'tijera')
score_gamer = 0
score_user = 0

def choose_option() -> str:
    """Elegimos piedra, papel o tijera"""

    game_option = random.choice(OPTION)
    user_option = input("Teclea opcion: Piedra, Papel o Tijera: ").lower()

    return game_option, user_option


def select_winner (game, user):
    """Seleccionamos quien ha sido el ganador de la jugada"""
    global score_gamer
    global score_user
    # Opciones ganadoras
    battle_result = [
        [4, 1, 0],
        [1, 4, 2],
        [0, 2, 4]
    ]
    game_idx = OPTION.index(game)
    user_idx = OPTION.index(user)
    if game == user:
        return 'Empate'
    else:
        win = battle_result[game_idx][user_idx]
        if game == OPTION[win]:
            score_gamer += 1
            return "Game"
        if user == OPTION[win]:
            score_user += 1
            return "User"

# Press the green button in the gutter to run the script.
if __name__ == '__main__':

    while True:
        game_option, user_option = choose_option()
        print(f'Game -> {game_option}, User -> {user_option}')
        winner = select_winner(game_option, user_option)
        print(f'El ganador es {winner}')
        print(f'PUNTUACION. Game = {score_gamer} / User = {score_user}')
        # Queremos continuar el juego
        seguir = input("Quiere jugar otra partida (S/N): ")
        print(seguir)
        if seguir.lower() != 's':
            print("No continua el juego")
            break
        print("Continua el juego")

Alguien se a preguntado 驴Por qu茅 la computadora gana un 98.9%?

Para jugar con la compu y un amigo.

#PIEDRA, PAPEL y TIJERA PROYECTOOO
print()
print("BIENVENIDO AL JUEGO DE PIEDRA, PAPEL Y TIJERA")
print(" \n ")

bis = {1: "Piedra", 2: "papel", 3: "tijeras"}

compu = 0
jugador = ""
jugador2 = ""
conjuga = 0
concom = 0
ronda = 1


#validacion y eleccion compu
def validacione(e, f):
  e = input(
    f"{f}Ingrese 1-piedra, 2-papel y 3-tijera o algun numero al lado de lado de la palabra "
  )
  e=e.lower()
  
  print()
  while not (e == "1" or e == "2" or e == "3" or e == "piedra" or e == "papel"
             or e == "tijera"):
    print()
    e = input(
      f"{f}por favor ingrese 1-piedra, 2-papel y 3-tijera o algun numero al lado de lado de la                   palabra "
    )  #Validacion de que ingrese un dato correcto
  return e


def validacion(a, j):
  bib = {"piedra": 1, "papel": 2, "tijera": 3}

  if a == "1" or a == "2" or a == "3":
    a = int(a)
  else:
    a = bib[a]
  print(j, (bis[a]))
  return a


#compu eleccion
def computa(b):
  import random
  eleccioncom = [1, 2, 3]
  random.shuffle(eleccioncom)
  b = random.choice(eleccioncom)
  print()
  print("Computadora", bis[b])
  print()
  return b


#Eleccion de juego
elecc = (input("Ingrese 1-Jugar solo 2-Jugar con amigo"))
print("\n")
while not (elecc == "1" or elecc == "2"):
  elecc = (input("Por favor ingrese 1-Jugar solo 2-Jugar con amigo"))

if elecc == "1":
  #Llamadas

  jugador = validacione(jugador, "")

  print("RONDA", ronda)
  print()
  jugador = validacion(jugador, "Jugador")

  compu = computa(compu)

  #Comparacion
  while conjuga < 3 and concom < 3:

    if ((jugador > compu and jugador == 1 and compu == 2) or
        (jugador < compu and jugador == 1
         and compu == 3)) or (jugador == 2 and jugador > compu) or (
           (jugador == 3 and compu == 2 and jugador > compu) or
           (jugador == 3 and jugador < compu)):
      print("Gana jugador")
      conjuga += 1
    elif jugador == compu:
      print("Empate")
    else:
      print("Gano compu")
      concom += 1

    print(f"jugador lleva {conjuga}  compu lleva {concom}")
    if conjuga < 3 and concom < 3:
      ronda += 1
      print("\n")
      print("RONDA", ronda)
      print()
      jugador = validacione(jugador, "")
      jugador = validacion(jugador, "Jugador")
      compu = computa(compu)

    if conjuga==3:
      print("GANA JUGADOR 1") 
    elif concom==3:
      print("GANA COMPUTADORA")
  

else:
  print("RONDA 1")
  jugador = validacione(jugador, "Turno de jugador 1--> ")
  jugador2 = validacione(jugador2, "Turno de jugador 2--> ")
  print("")
  jugador = validacion(jugador, "Jugador 1--> ")
  print("")
  jugador2 = validacion(jugador2, "Jugador 2--> ")

while conjuga < 3 and concom < 3:

  if ((jugador > jugador2 and jugador == 1 and jugador2 == 2) or
      (jugador < jugador2 and jugador == 1
       and jugador2 == 3)) or (jugador == 2 and jugador > jugador2) or (
         (jugador == 3 and jugador2 == 2 and jugador > jugador2) or
         (jugador == 3 and jugador < jugador2)):
    print("Gana jugador 1")
    conjuga += 1
  elif jugador == jugador2:
    print("Empate")
  else:
    print("Gano jugador 2")
    concom += 1

  print(f"jugador 1 lleva--> {conjuga}  jugador 2--> lleva {concom}")
  if conjuga < 3 and concom < 3:
    ronda += 1
    print("\n")
    print("RONDA", ronda)
    print()

    jugador = validacione(jugador, "Turno jugador 1--> ")
    jugador2 = validacione(jugador2, "Turno de jugador 2--> ")
    print("")
    jugador = validacion(jugador, "Jugador 1 --> ")
    print("")
    jugador2 = validacion(jugador2, "Jugador 2--> ")
    print("")
  if conjuga==3:
   print("GANA JUGADOR 1") 
  elif concom==3:
    print("GANA JUGADOR 2")
  

Mi aporte ^^

import random

def choose_options():
    options = ('piedra', 'papel', 'tijera')
    user_option = input('piedra, papel o tijera => ').lower()
    
    if not user_option in options:
        print('馃 Esa opcion no es valida')
        return None, None
    
    computer_option = random.choice(options)
    return user_option, computer_option
    
def who_wins_this_round(user_opt, computer_opt, scores):
    winner = ''
    user_win_condition = [ ('tijera', 'papel'), ('papel', 'piedra'), ('piedra', 'papel') ]
    
    if user_opt == computer_opt:
        winner = "馃洃"
    else:
        user_win = (user_opt, computer_opt) in user_win_condition
        winner = '馃懁' if user_win else '馃捇'
        scores[winner] = scores.get(winner, 0) + 1
    print(f"[馃懁 {scores['馃懁']}] {user_opt}\n[馃捇 {scores['馃捇']}] {computer_opt}\nGanador: {winner}!")

def who_wins_this_game(scores):
    if any(map(lambda s: s >= 3, scores.values())):
        winner = max(scores, key=scores.get)
        print(f'El ganador del juego es ---> {winner}')
        exit()

def run_game():
    scores = {
        '馃懁': 0,
        '馃捇': 0,
    }
    rounds = 1
    while True:
        print(f'\n[Round #{rounds}] ', end='')
        user_option, computer_option = choose_options()
        if None not in [user_option, computer_option]:
            who_wins_this_round(user_option, computer_option, scores)
            who_wins_this_game(scores)
            rounds += 1
run_game()

mi aporte un poco optimizado

<code> import random

# Define las opciones y las reglas del juego
OPTIONS = {'piedra': {'tijera': 'user', 'papel': 'cpu'},
           'papel': {'piedra': 'user', 'tijera': 'cpu'},
           'tijera': {'papel': 'user', 'piedra': 'cpu'}}

def choose_options():
    user_option = input('piedra, papel o tijera => ').lower()
    if user_option not in OPTIONS:
        print('esa opcion no es valida')
        return None, None
    cpu_option = random.choice(list(OPTIONS.keys()))
    print('user option =>', user_option)
    print('cpu option =>', cpu_option)
    return user_option, cpu_option

def check_rules(user_option, cpu_option, user_wins, cpu_wins):
    result = OPTIONS[user_option][cpu_option]
    if result == 'user':
        print(f'{user_option} gana a {cpu_option}')
        print('隆user gana!')
        user_wins += 1
    elif result == 'cpu':
        print(f'{cpu_option} gana a {user_option}')
        print('隆cpu gana!')
        cpu_wins += 1
    else:
        print('隆EMPATE!')
    return user_wins, cpu_wins

def run_game():
    cpu_wins = 0
    user_wins = 0
    for round in range(1, 4):
        print('*' * 12)
        print(f'ROUND {round}')
        print('*' * 12)
        print('-' * 12)
        print(f'points USER => {user_wins}')
        print(f'points CPU => {cpu_wins}')
        print('-' * 12)
        user_option, cpu_option = choose_options()
        if user_option is None:
            continue
        user_wins, cpu_wins = check_rules(user_option, cpu_option, user_wins, cpu_wins)
        if cpu_wins == 2:
            print('*** 隆El ganador rotundo es la CPU! ***')
            break
        elif user_wins == 2:
            print('*** 隆El ganador rotundo es la USER! ***')
            break

# Ejecuta el juego
run_game()

hago mi aporte con mi refactorizacion del codigo. Dicho codigo es diferente al propuesto en esta clase ya que trate de optimizar la ejecucion de las reglas por medio de una tupla

import random

def game_stats(rounds, user_wins, computer_wins):
    print("*" * 10)

    print("Ronda", rounds, ": ")

    print("*" * 10)

    print("Victorias de user: ", user_wins, "/ 2")

    print("Victorias de computer: ", computer_wins, "/ 2")

    print("*" * 10)

    print("Elige una opcion: ") 

def player_options_selection():
    options = ("piedra", "papel", "tijeras")
    user_option = input('piedra, papel o tijeras => ')
    user_option = user_option.lower()

    while not user_option in options:
        print("Elige una opcion valida: ")
        user_option = input('piedra, papel o tijeras => ')

    computer_option = random.choice(options)

    print("*" * 10)

    print("Opcion de user: ", user_option)

    print("opcion de computer:", computer_option)

    return user_option, computer_option

def round_winner(user_option, computer_option, user_wins, computer_wins):
    win = ("piedratijeras", "tijeraspapel", "papelpiedra")

    fight = user_option + computer_option

    print("Resultado: ")

    if user_option == computer_option:
        print('Empate!')

    elif fight in win:
        print("user gana la ronda")
        user_wins +=1

    else:
        print("computer gana la ronda")
        computer_wins +=1

    print("*" * 10)

    return user_wins, computer_wins

def match_winner(user_wins, computer_wins):
    if user_wins > computer_wins:
        print("User gana la partida")

    else: 
        print("Computer gana la partida")

def run_game():
    rounds = 1

    user_wins = 0

    computer_wins = 0

    while user_wins != 2 and computer_wins != 2:

        game_stats(rounds, user_wins, computer_wins)

        user_option, computer_option = player_options_selection()

        user_wins, computer_wins = round_winner(user_option, computer_option, user_wins, computer_wins)

        rounds +=1

    match_winner(user_wins, computer_wins)

run_game()

ejercicio de piedra papel o tijera


# Imports
import random
import time
import getpass

# Write animation
def write_fx(frase):
    for letra in frase:
        print(letra, end='', flush=True)
        time.sleep(0.010)
    
# game
def play(num1, num2, cpu_cs):
     
    empty = 0

    computer_wins = 0

    user_wins = 0

    rounds = 0


    while True:
        
        num2 = random.choice(cpu_cs)


        if num1 == num2:
            time.sleep(1)
            result = '\n    [*] Nadie gana'
            empty += 1
            rounds += 1

        elif num1 =='tijeras' and num2 == 'piedra' or num1 == 'papel' and num2 == 'tijeras' or num1 == 'piedra' and num2 == 'papel':
            time.sleep(1)
            result = '\n    [*] La maquina gana'
            computer_wins += 1
            rounds += 1

        elif num1 == 'piedra' and num2 == 'tijeras' or num1 == 'tijeras' and num2 == 'papel' or num1 == 'papel' and num2 == 'piedra':
            time.sleep(1)
            result = '\n    [*] El jugador gana'
            user_wins += 1
            rounds += 1

        if user_wins == 2:
            write_fx(f'''   
    Resultado de Partida numero {rounds}   
                
            {result}

    La seleccion de la maquina fue {num2}''')
            table('EL Usuario :D', rounds, user_wins, computer_wins, empty)
            break

        elif computer_wins == 2:
            write_fx(f'''   
    Resultado de Partida numero {rounds}   
                
            {result}

    La seleccion de la maquina fue {num2}''')
            table('La Maquina :D', rounds, user_wins, computer_wins, empty)
            break

        else:
            write_fx(f'''   
    RESULTADO DE PARTIDA NUMERO {rounds}   
                
            {result}

    La seleccion de la maquina fue {num2}''')

                
            write_fx(f'''
            
    vuelve a escoger entre 
            
    [*] Piedra
    [*] Papel
    [*] Tijeras
            
    para la siguiente ronda: ''')
            
            num1 = input('').lower().replace(' ','')

            if num1 not in cpu_cs:
                write_fx('\n    Comando no valido')
                time.sleep(1)
                
                write_fx(f'''
            
    vuelve a escoger entre 
            
    [*] Piedra
    [*] Papel
    [*] Tijeras
            
    para la siguiente ronda: ''')
                num1 = input('').lower().replace(' ','')
                continue

# User Interface
def table(nom, var1, var2, var3, var4):
    time.sleep(1)
    write_fx(f'''
    
     ________________________________________________________________
    | Partidas | ganadas por usuario | ganadas por maquina | Empates |
    |------------------------------------------------------|---------|
    |     {var1}    |         {var2}           |         {var3}           |    {var4}    |
     ----------------------------------------------------------------
    
    El ganador de la ronda es  {nom} 

                        
                        
                         鈻堚枅鈻堚枅鈻堚枅鈺   鈻堚枅鈻堚枅鈻堚枅鈺
                        鈻堚枅鈺斺晲鈺愨晲鈺愨暆  鈻堚枅鈺斺晲鈺愨晲鈺愨暆
                        鈻堚枅鈺戔枒鈻戔枅鈻堚晽  鈻堚枅鈺戔枒鈻戔枅鈻堚晽
                        鈻堚枅鈺戔枒鈻戔暁鈻堚枅鈺 鈻堚枅鈺戔枒鈻戔暁鈻堚枅鈺
                        鈺氣枅鈻堚枅鈻堚枅鈻堚晹鈺 鈺氣枅鈻堚枅鈻堚枅鈻堚晹鈺
                         鈺氣晲鈺愨晲鈺愨晲鈺   鈺氣晲鈺愨晲鈺愨晲鈺

    ''')


def home():
    choices = ('piedra', 'papel', 'tijeras')

    write_fx ('''
    
    Bienvenido a piedra, papel o tijeras

    El juego es en partidas, el primero en ganar
    2 partidas gana la ronda.

    [*] Piedra
    [*] Papel
    [*] Tijeras
    
    Escribe cual va a escoger aca --> ''')

    user_cs = input('').lower().replace(' ','')

    comp_cs = random.choice(choices)

    if user_cs not in choices:
        write_fx('\n    Comando no valido')
        time.sleep(1)
        home()

    else:
        play(user_cs, comp_cs, choices)

        write_fx(f'\n\n    Preciona enter para volver a jugar')
        getpass.getpass(' ')
        home()

if __name__ == '__main__':
    home()

La verdad, me cost贸 un poco, pero se hizo as铆:

import random

def choose_options():
options = (鈥榩iedra鈥, 鈥榩apel鈥, 鈥榯ijera鈥)
user_option = input('piedra, papel o tijera => ')
user_option = user_option.lower()

if not user_option in options:
print(鈥榚sa opcion no es valida鈥)
# continue
return None, None

computer_option = random.choice(options)

print(鈥楿ser option =>鈥, user_option)
print(鈥楥omputer option =>鈥, computer_option)
return user_option, computer_option

def check_rules(user_option, computer_option, user_wins, computer_wins):
if user_option == computer_option:
print(鈥楨mpate!鈥)
elif user_option == 鈥榩iedra鈥:
if computer_option == 鈥榯ijera鈥:
print(鈥榩iedra gana a tijera鈥)
print(鈥榰ser gano!鈥)
user_wins += 1
else:
print(鈥楶apel gana a piedra鈥)
print(鈥榗omputer gano!鈥)
computer_wins += 1
elif user_option == 鈥榩apel鈥:
if computer_option == 鈥榩iedra鈥:
print(鈥榩apel gana a piedra鈥)
print(鈥榰ser gano鈥)
user_wins += 1
else:
print(鈥榯ijera gana a papel鈥)
print(鈥榗omputer gano!鈥)
computer_wins += 1
elif user_option == 鈥榯ijera鈥:
if computer_option == 鈥榩apel鈥:
print(鈥榯ijera gana a papel鈥)
print(鈥榰ser gano!鈥)
user_wins += 1
else:
print(鈥榩iedra gana a tijera鈥)
print(鈥榗omputer gano!鈥)
computer_wins += 1
return user_wins, computer_wins

def check_winner(user_wins, computer_wins):
if computer_wins == 2:
print(鈥楨l ganador es la computadora鈥)
#break
exit()

if user_wins == 2:
print(鈥楨l ganador es el usuario鈥)
#break
exit()

def run_game():
computer_wins = 0
user_wins = 0
rounds = 1
while True:
print(鈥鈥 * 10)
print(鈥楻OUND鈥, rounds)
print(鈥
鈥 * 10)

print('computer_wins', computer_wins)
print('user_wins', user_wins)
rounds += 1

user_option, computer_option = choose_options()
user_wins, computer_wins = check_rules(user_option, computer_option, user_wins, computer_wins)
check_winner(user_wins, computer_wins)

run_game()

la funci贸n de check\_rules mas resumida usando diccionarios: ```js def check_rules(user_option, computer_option, user_wins, computer_wins): rules = {'piedra': 'tijera', 'tijera': 'papel', 'papel': 'piedra'} if user_option == computer_option: print('Empate!') elif rules[user_option] == computer_option: print(f'{user_option} gana a {computer_option}') print('user gano!') user_wins += 1 else: print(f'{computer_option} gana a {user_option}') print('computer gano!') computer_wins += 1 return user_wins, computer_wins ```
Mi aporte: `import random` `# funcion para elegir opciones` `def choose_options():` ` options = ('piedra', 'papel', 'tijera')` ` user_option = input('piedra, papel o tijera => ')` ` user_option = user_option.lower()` ` if user_option not in options:` ` print('esa opcion no es valida')` ` #continue` ` return None, None` ` computer_option = random.choice(options)` ` print('User option =>', user_option)` ` print('Computer option =>', computer_option)` ` return user_option, computer_option` `# fin funcion` `# funcion verificar las reglas` `def check_rules(user_option, computer_option, user_wins, computer_wins):` ` if user_option == computer_option:` ` print('Empate!')` ` elif user_option == 'piedra':` ` if computer_option == 'tijera':` ` print('piedra gana a tijera')` ` print('user gano!')` ` user_wins += 1` ` else:` ` print('Papel gana a piedra')` ` print('computer gano!')` ` computer_wins += 1` ` elif user_option == 'papel':` ` if computer_option == 'piedra':` ` print('papel gana a piedra')` ` print('user gano')` ` user_wins += 1` ` else:` ` print('tijera gana a papel')` ` print('computer gano!')` ` computer_wins += 1` ` elif user_option == 'tijera':` ` if computer_option == 'papel':` ` print('tijera gana a papel')` ` print('user gano!')` ` user_wins += 1` ` else:` ` print('piedra gana a tijera')` ` print('computer gano!')` ` computer_wins += 1` ` return user_wins, computer_wins` `# fin funcion` `# funcion winner` `def check_winner(user_wins, computer_wins):` ` if computer_wins == 2:` ` print('El ganador es la computadora')` ` #break` ` return False` ` elif user_wins == 2:` ` print('El ganador es el usuario')` ` #break` ` return False` ` else:` ` return True` `# fin funcion` `def run_game():` ` user_wins = 0` ` computer_wins = 0` ` rounds = 1` ` while True:` ` print('*' * 10)` ` print('ROUND', rounds)` ` print('*' * 10)` ` print('computer_wins', computer_wins)` ` print('user_wins', user_wins)` ` rounds += 1` ` user_option, computer_option = choose_options()` ` user_wins, computer_wins = check_rules(user_option, computer_option, user_wins, computer_wins)` ` if not check_winner(user_wins, computer_wins):` ` break` `# play game` `run_game()`
import random options = \['piedra', 'papel', 'tijera'] results = {'piedra': 'tijera', 'papel': 'piedra', 'tijera': 'papel'} user\_wins = 0 computer\_wins = 0 while True: user\_option = input('Elige piedra, papel o tijera: ').lower() computer\_option = random.choice(options) print('User option =>', user\_option) print('Computer option =>', computer\_option) if user\_option == computer\_option: print('Empate!') elif results\[user\_option] == computer\_option: print(f'{user\_option} gana a {computer\_option}') print('Usuario gana!') user\_wins += 1 else: print(f'{computer\_option} gana a {user\_option}') print('Computadora gana!') computer\_wins += 1 if computer\_wins == 2: print('El ganador es la computadora') break if user\_wins == 2: print('El ganador es el usuario') break
"""Libreria"""
import random

"""Funciones:"""
#Cabecera del Juego
def header_game(round_parameter):
  print('*' * 10)
  print('ROUND', round_parameter)
  print('*' * 10)
  
#Elegir opciones
def choose_options():  
  #tupla del juego
  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.')
    return None, None

  cpu_option = random.choice(options)

  print('User option =>', user_option)
  print('CPU option =>', cpu_option)
  
  return user_option, cpu_option

#Reglas del juego
def show_rules(user_option, cpu_option, count):  
  if user_option == cpu_option:
    print('Empate!')
  elif user_option == 'piedra':
    if cpu_option == 'tijera':
      print('piedra gana a tijera')
      print('user gano!')
      count['user'] += 1
    else:
      print('Papel gana a piedra')
      print('CPU gano!')
      count['cpu'] += 1
  elif user_option == 'papel':
    if cpu_option == 'piedra':
      print('papel gana a piedra')
      print('user gano')
      count['user'] += 1
    else:
      print('tijera gana a papel')
      print('CPU gano!')
      count['cpu'] += 1
  elif user_option == 'tijera':
    if cpu_option == 'papel':
      print('tijera gana a papel')
      print('user gano!')
      count['user'] += 1
    else:
      print('piedra gana a tijera')
      print('CPU gano!')
      count['cpu'] += 1
  return count

#Mostrar el resultados
def show_result(count, limit):
  if count.get('cpu') == limit:
    return True, 'CPU'
  elif count.get('user') == limit:
    return True, 'USER'
  else:
    return False, ''

#Funcion principal del Juego
def run_game():
  #contador de victorias 
  counter = {  
      'user': 0,
      'cpu': 0
  }
  #contador de rondas
  rounds = 1  
  limitRounds = 2

  while True:
    header_game(rounds)
    
    print('cpu_wins', counter.get('cpu'))
    print('user_wins', counter.get('user'))
    
    rounds += 1
  
    get_user, get_cpu = choose_options()
    get_counter = show_rules(get_user, get_cpu, counter)

    resultBool, name = show_result(get_counter, limitRounds)
    
    if resultBool:
      print('El ganador es: ', name)
      break
      
"""Start Game"""
run_game()

REFACTORIZANDO MI ANTERIOR JUEGO (PRUEBALO !)

import random

rounds, usuario_win, maquina_win = 0, 0, 0

def contador():
    return f'Usuario: {usuario_win}\nIA: {maquina_win}\n'

def determinar_resultado(usuario, maquina):
    if maquina == usuario:
        return 'Empate'
    return f'{"Usuario" if (maquina == "papel" and usuario == "tijera") or (maquina == "piedra" and usuario == "papel") or (maquina == "tijera" and usuario == "piedra") else "IA"} gana a {maquina}'

def jugar_ronda():
    global usuario_win, maquina_win, rounds

    rounds += 1
    print(f'\n{"-" * 30}\nROUND {rounds}\n{"-" * 30}')

    usuario = input('Piedra, Papel o Tijera\nUsuario: ').lower()
    maquina = random.choice(["piedra", 'papel', 'tijera'])
    print(f'IA: {maquina}\n')

    resultado = determinar_resultado(usuario, maquina)
    print(resultado)
    
    if resultado.startswith('Usuario'):
        usuario_win += 1

    print(contador())

def jugar_juego():
    global usuario_win, maquina_win

    while usuario_win < 2 and maquina_win < 2:
        jugar_ronda()

    print('Ganaste !' if usuario_win == 2 else 'Perdiste !')

jugar_juego()

```js import os import random def choose_options(): options=('piedra','papel','tijeras') user_option=input('Elije entre piedra, papel o tijeras ==> ').lower() computer_option= random.choice(options) return user_option, computer_option def check_rules(user_option,computer_option): if user_option==computer_option: return 0 elif (user_option=='piedra'and computer_option=='tijeras') or (user_option=='papel'and computer_option=='piedra')or(user_option=='tijeras'and computer_option=='papel'): return 1 elif (computer_option=='piedra'and user_option=='tijeras') or (computer_option=='papel'and user_option=='piedra')or(computer_option=='tijeras'and user_option=='papel'): return 2 def winner(ruler): if ruler ==0: print("Es un empate") elif ruler == 1: print("Ganaste.") elif ruler == 2: print("La computadora gano.") def clear_screen(): os.system('cls' if os.name == 'nt' else 'clear') def print_title(): print(""" [ 馃 Bienvenido al juego Piedra, Papel o tijera 馃檵] _______ ---' ____)____ _______) _______) _______) ---.___________.' """) def runner(): options=('piedra','papel','tijeras') looper=input('Desea jugar piedra, papel o tijeras?(y/n)==> ').lower() round=1 user_wins = 0 computer_wins = 0 while looper=="y": clear_screen() print_title() print(f"ROUND ==> {round} |User wins ==> {user_wins} |Computer wins ==> {computer_wins}") print('-'*50) user_option, computer_option=choose_options() if user_option not in options: print("elije una opcion entre: 'piedra','papel','tijeras' " ) continue print(f"Elegiste {user_option} y la computadora eligio {computer_option}") ruler=check_rules(user_option,computer_option) winner(ruler) if ruler == 0: pass elif ruler == 1: user_wins+=1 elif ruler == 2: computer_wins+=1 round+=1 looper=input('Desea seguir jugando?(y/n)==>').lower() runner() ```**Les dejo mi aporte, lo hice de 0, pensando en lo que algunos comentaban sobre armar algo que ya venia de antes, creo que en t茅rminos pr谩cticos es mejor empezar de nuevo.**
```python import random def choose_options(): options = ('piedra', 'papel', 'tijera') user_option = input('piedra 馃, papel 馃搫 o tijera 鉁傦笍 => ') user_option = user_option.lower() while not user_option in options: print('Esa opcion no es valida') user_option = input('piedra 馃, papel 馃搫 o tijera 鉁傦笍 => ') user_option = user_option.lower() computer_option = random.choice(options) print('User option =>', user_option) print('Computer option =>', computer_option) return user_option, computer_option def check_rules(user_option, computer_option, user_wins, computer_wins): if user_option == computer_option: print('Empate!') elif user_option == 'piedra': if computer_option == 'tijera': print('馃 Piedra gana a tijera 鉁傦笍') print('user gano!') user_wins += 1 else: print('馃搫 Papel gana a piedra 馃') print('computer gano!') computer_wins += 1 elif user_option == 'papel': if computer_option == 'piedra': print('馃搫 Papel gana a piedra 馃') print('user gano') user_wins += 1 else: print('鉁傦笍 Tijera gana a papel 馃搫') print('computer gano!') computer_wins += 1 elif user_option == 'tijera': if computer_option == 'papel': print('鉁傦笍 Tijera gana a papel 馃搫') print('user gano!') user_wins += 1 else: print('馃 Piedra gana a tijera 鉁傦笍') print('computer gano!') computer_wins += 1 return user_wins, computer_wins def check_winner(user_wins, computer_wins): winner = "" if computer_wins == 2: winner = "la computadora" if user_wins == 2: winner = "el usuario" if winner: print('*' * 15) print('RESULTADO') print('*' * 15) print('computer_wins:', computer_wins) print('user_wins:', user_wins) print(f'El ganador es {winner}') exit() def run_game(): computer_wins = 0 user_wins = 0 rounds = 1 while True: print('*' * 10) print('ROUND', rounds) print('*' * 10) print('computer_wins', computer_wins) print('user_wins', user_wins) rounds += 1 user_option, computer_option = choose_options() user_wins, computer_wins = check_rules(user_option, computer_option, user_wins, computer_wins) check_winner(user_wins, computer_wins) run_game() ``````js ```
![](https://static.platzi.com/media/user_upload/image-cd925bf6-5c51-4721-aaa7-4948c89b785c.jpg)
**Mi aporte:** La palabra clave `break` solo tiene sentido dentro de bucles (`for`, `while`) o estructuras de control de flujo espec铆ficas. Por lo anterior, en el ejercicio propuesto al finalizar la clase, tiene mas sentido usar la funci贸n exit(). La cual no se ha explicado en el curso hasta ahora.
```python def check_winner(a,b): if a == 2: print('*****Usuario gana la partida****') return True if b == 2: print('Computadora gana la partida') return True return False #luego en run_game termino el programa if check_winner(user_wins, computer_wins): break ```Le铆 que la opci贸n con break() es mas corat pero en prgramas mas grandes menos recomendad
Este es el tipo de clases que no permiten progresar f谩cilmente en un curso, una clase de 16 minutos en la que puedes durar m谩s de tres horas intentando entender malas explicaciones
No me resulto una buena clase, me pareci贸 complicada, muy compleja para lo visto hasta aqu铆.
Aqu铆 dejo mi peque帽o aporte: import random def choice\_options():聽 options = ('piedra', 'papel', 'tijera')聽 user\_option = input("piedra , papel 聽o tijera => ").lower().strip() 聽 if not user\_option in options:聽 聽 print("esa opci贸n no es v谩lida")聽 聽 #continue聽 聽 return None, None聽 computer\_option = random.choice(options) 聽 if user\_option == 'piedra':聽 聽 print('馃懆User option => ', user\_option)聽 聽 print(' 聽 聽 聽 聽 聽 \_..--------.')聽 聽 print('\_\_\_\_\_\_\_\_.- 聽 聽\_\_\_\_\_\_\_\_\_)')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 (\_\_\_\_\_\_\_)')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 (\_\_\_\_\_\_\_\_\_)')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽(\_\_\_\_\_\_\_\_)')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 (\_\_\_\_\_\_\_)')聽 聽 print('-------...\_\_\_\_\_\_\_\_\_\_\_\_.')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \ 聽\ 聽 聽 聽/ 聽/ 聽| 聽 \_\_\_\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽\ 聽\ 聽 聽/ 聽/ 聽 | 聽 |\_\_\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \ 聽\\\_\_/ 聽/ 聽 聽|\_\_\_\_\_ 聽 | 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽\ 聽 聽 聽/ 聽 聽 聽\_\_\_\_| 聽 | 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ') 聽聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \\\_\_\_\_/ 聽 聽 聽|\_\_\_\_\_\_\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽') 聽 if user\_option == 'papel':聽 聽 print('馃懆User option => ', user\_option)聽 聽 print(' 聽 聽 聽 聽 \_\_\_-----------\_\_\_\_\_\_\_\_\_\_\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print('--------- 聽 聽 聽 聽 聽 聽 聽 聽 .\_\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽.\_\_\_\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 .\_\_\_\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽.\_\_\_\_\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print('--------.\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \ 聽\ 聽 聽 聽/ 聽/ 聽| 聽 \_\_\_\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽\ 聽\ 聽 聽/ 聽/ 聽 | 聽 |\_\_\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \ 聽\\\_\_/ 聽/ 聽 聽|\_\_\_\_\_ 聽 | 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽\ 聽 聽 聽/ 聽 聽 聽\_\_\_\_| 聽 | 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ') 聽聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \\\_\_\_\_/ 聽 聽 聽|\_\_\_\_\_\_\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 if user\_option == 'tijera':聽 聽 print('馃懆User option => ', user\_option)聽 聽 print(' 聽 聽 聽 聽 \_\_\_-----------\_\_\_\_\_\_\_\_\_\_\_\_\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print('\_\_\_\_\_\_\_\_. 聽 聽 聽 聽 聽 聽 聽 聽 .\_\_\_\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽\\\_\_\_\_\_\_\_\_\_\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 .\_\_\_\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽) 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print('--------.\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \ 聽\ 聽 聽 聽/ 聽/ 聽| 聽 \_\_\_\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽\ 聽\ 聽 聽/ 聽/ 聽 | 聽 |\_\_\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \ 聽\\\_\_/ 聽/ 聽 聽|\_\_\_\_\_ 聽 | 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽\ 聽 聽 聽/ 聽 聽 聽\_\_\_\_| 聽 | 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ') 聽聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \\\_\_\_\_/ 聽 聽 聽|\_\_\_\_\_\_\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 if computer\_option == 'piedra':聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 馃Computer option => ', computer\_option)聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 .--------..\_')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽(\_\_\_\_\_\_\_\_\_ 聽 聽.--------')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽(\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽(\_\_\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽(\_\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽(\_\_\_\_\_\_\_) 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 .\_\_\_\_\_\_\_\_\_\_\_...-------')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 if computer\_option == 'papel':聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽馃Computer option => ', computer\_option)聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽\_\_\_\_\_\_\_\_\_\_\_\_-----------\_\_\_ 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 (\_\_\_\_\_\_\_\_. 聽 聽 聽 聽 聽 聽 聽 聽 ---------')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 (\_\_\_\_\_\_\_\_\_. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽(\_\_\_\_\_\_\_\_\_\_. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 (\_\_\_\_\_\_\_\_\_\_\_. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽(\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_.--------')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ') 聽 if computer\_option == 'tijera':聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽馃Computer option => ', computer\_option)聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽\_\_\_\_\_\_\_\_\_\_\_\_\_\_-----------\_\_\_ 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 (\_\_\_\_\_\_\_\_\_\_. 聽 聽 聽 聽 聽 聽 聽 聽 .\_\_\_\_\_\_\_\_')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \_\_\_\_\_\_\_\_\_\_\_/ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽(\_\_\_\_\_\_\_\_\_\_. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽( 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 (\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_.--------')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 聽 聽 聽 return user\_option, computer\_option def check\_rules(user\_option, computer\_option, user\_wins, computer\_wins):聽 if user\_option == computer\_option:聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽|\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽\_\_\_\_\_\_\_ 聽 \_\_ 聽 聽 聽\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽| 聽| 聽 聽| 聽 \_\_\_\_| | 聽\ 聽 聽/ 聽| | 聽 \_\_ 聽 | | 聽 \_\_ 聽 | |\_\_\_ 聽 聽\_\_\_| | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽| 聽| 聽 聽| 聽|\_\_\_\_ 聽| 聽 \\\_\_/ 聽 | | 聽|\_\_| 聽| | 聽|\_\_| 聽| 聽 聽 | 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽| 聽| 聽 聽| 聽 \_\_\_\_| | 聽 聽 聽 聽 聽| | 聽 \_\_\_\_\_| | 聽 \_\_ 聽 | 聽 聽 | 聽| 聽 聽 | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽| 聽| 聽 聽| 聽|\_\_\_\_ 聽| 聽|\\\_\_/| 聽| | 聽| 聽 聽 聽 | 聽| 聽| 聽| 聽 聽 | 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽| 聽| 聽 聽|\_\_\_\_\_\_\_| |\_\_| 聽 聽|\_\_| |\_\_| 聽 聽 聽 |\_\_| 聽|\_\_| 聽 聽 |\_\_| 聽 聽 |\_\_\_\_\_\_\_| 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽|\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 elif user\_option == "piedra":聽 聽 if computer\_option == "tijera":聽 聽 聽 print('piedra gana a tijera')聽 聽 聽 print('馃懆user gano!')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽\_\_ 聽 聽 聽\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_ 聽 聽\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽 \_\_\_\_\_| | 聽 \_\_ 聽 | | 聽\ 聽| 聽| | 聽 \_\_ 聽 | | 聽 \_\_\_\_\_| |\_\_\_ 聽 聽\_\_\_| | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽| 聽\_\_\_ 聽| 聽|\_\_| 聽| | 聽 \ | 聽| | 聽|\_\_| 聽| | 聽|\_\_\_\_\_ 聽 聽 聽| 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽| |\_\_ | | 聽 \_\_ 聽 | | 聽 聽\\| 聽| | 聽 \_\_ 聽 | |\_\_\_\_\_ 聽 | 聽 聽 | 聽| 聽 聽 | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽|\_\_\_| | | 聽| 聽| 聽| | 聽|\ 聽 聽| | 聽| 聽| 聽| 聽\_\_\_\_\_| 聽| 聽 聽 | 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽|\_\_\_\_\_\_\_\_| |\_\_| 聽|\_\_| |\_\_| \\\_\_\_| |\_\_| 聽|\_\_| |\_\_\_\_\_\_\_\_| 聽 聽 |\_\_| 聽 聽 |\_\_\_\_\_\_\_| 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 user\_wins += 1聽 聽 else:聽 聽 聽 print('papel gana a piedra')聽 聽 聽 print('馃computer gano!')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽|\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 | 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽 \_\_ 聽 聽 聽\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 聽 聽\_\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽 \_\_ 聽 | | 聽 \_\_\_\_| | 聽 聽\_\_ 聽 | | 聽 \_\_ 聽|\_\_ 聽| 聽 | | 聽 \_\_\_\_\_| |\_\_\_ 聽 聽\_\_\_| | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽|\_\_| 聽| | 聽|\_\_\_\_ 聽| 聽 |\_\_| 聽| | 聽| 聽|\_ 聽 | | 聽 | | 聽|\_\_\_\_\_ 聽 聽 聽| 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽 \_\_\_\_\_| | 聽 \_\_\_\_| | 聽 \_\_ 聽 \_| | 聽| 聽 \_| 聽| | 聽 | |\_\_\_\_\_ 聽 | 聽 聽 | 聽| 聽 聽 | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽| 聽 聽 聽 | 聽|\_\_\_\_ 聽| 聽| 聽\ 聽\ 聽| 聽|\_\_| 聽\_\_| | 聽 | 聽\_\_\_\_\_| 聽| 聽 聽 | 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 |\_\_| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽|\_\_| 聽 聽 聽 |\_\_\_\_\_\_\_| |\_\_| 聽 \\\_\_\ |\_\_\_\_\_\_\_| 聽 聽|\_\_\_| |\_\_\_\_\_\_\_\_| 聽 聽 |\_\_| 聽 聽 |\_\_\_\_\_\_\_| 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽|\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 |\_\_| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 computer\_wins += 1聽 elif user\_option == 'papel':聽 聽 if computer\_option == 'piedra':聽 聽 聽 print('papel gana a piedra')聽 聽 聽 print('馃懆user gano!')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽\_\_ 聽 聽 聽\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_ 聽 聽\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽 \_\_\_\_\_| | 聽 \_\_ 聽 | | 聽\ 聽| 聽| | 聽 \_\_ 聽 | | 聽 \_\_\_\_\_| |\_\_\_ 聽 聽\_\_\_| | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽| 聽\_\_\_ 聽| 聽|\_\_| 聽| | 聽 \ | 聽| | 聽|\_\_| 聽| | 聽|\_\_\_\_\_ 聽 聽 聽| 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽| |\_\_ | | 聽 \_\_ 聽 | | 聽 聽\\| 聽| | 聽 \_\_ 聽 | |\_\_\_\_\_ 聽 | 聽 聽 | 聽| 聽 聽 | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽|\_\_\_| | | 聽| 聽| 聽| | 聽|\ 聽 聽| | 聽| 聽| 聽| 聽\_\_\_\_\_| 聽| 聽 聽 | 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽|\_\_\_\_\_\_\_\_| |\_\_| 聽|\_\_| |\_\_| \\\_\_\_| |\_\_| 聽|\_\_| |\_\_\_\_\_\_\_\_| 聽 聽 |\_\_| 聽 聽 |\_\_\_\_\_\_\_| 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 user\_wins += 1聽 聽 else:聽 聽 聽 print('tijera gana a papel')聽 聽 聽 print('馃computer gano!')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽|\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 | 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽 \_\_ 聽 聽 聽\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 聽 聽\_\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽 \_\_ 聽 | | 聽 \_\_\_\_| | 聽 聽\_\_ 聽 | | 聽 \_\_ 聽|\_\_ 聽| 聽 | | 聽 \_\_\_\_\_| |\_\_\_ 聽 聽\_\_\_| | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽|\_\_| 聽| | 聽|\_\_\_\_ 聽| 聽 |\_\_| 聽| | 聽| 聽|\_ 聽 | | 聽 | | 聽|\_\_\_\_\_ 聽 聽 聽| 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽 \_\_\_\_\_| | 聽 \_\_\_\_| | 聽 \_\_ 聽 \_| | 聽| 聽 \_| 聽| | 聽 | |\_\_\_\_\_ 聽 | 聽 聽 | 聽| 聽 聽 | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽| 聽 聽 聽 | 聽|\_\_\_\_ 聽| 聽| 聽\ 聽\ 聽| 聽|\_\_| 聽\_\_| | 聽 | 聽\_\_\_\_\_| 聽| 聽 聽 | 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 |\_\_| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽|\_\_| 聽 聽 聽 |\_\_\_\_\_\_\_| |\_\_| 聽 \\\_\_\ |\_\_\_\_\_\_\_| 聽 聽|\_\_\_| |\_\_\_\_\_\_\_\_| 聽 聽 |\_\_| 聽 聽 |\_\_\_\_\_\_\_| 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽|\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 |\_\_| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 computer\_wins += 1聽 elif user\_option == 'tijera':聽 聽 if computer\_option == 'papel':聽 聽 聽 print('tijera gana a papel')聽 聽 聽 print('馃懆user gano!')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽\_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽\_\_ 聽 聽 聽\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_ 聽 聽\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽 \_\_\_\_\_| | 聽 \_\_ 聽 | | 聽\ 聽| 聽| | 聽 \_\_ 聽 | | 聽 \_\_\_\_\_| |\_\_\_ 聽 聽\_\_\_| | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽| 聽\_\_\_ 聽| 聽|\_\_| 聽| | 聽 \ | 聽| | 聽|\_\_| 聽| | 聽|\_\_\_\_\_ 聽 聽 聽| 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽| |\_\_ | | 聽 \_\_ 聽 | | 聽 聽\\| 聽| | 聽 \_\_ 聽 | |\_\_\_\_\_ 聽 | 聽 聽 | 聽| 聽 聽 | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽| 聽|\_\_\_| | | 聽| 聽| 聽| | 聽|\ 聽 聽| | 聽| 聽| 聽| 聽\_\_\_\_\_| 聽| 聽 聽 | 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 | 聽| 聽 聽|\_\_\_\_\_\_\_\_| |\_\_| 聽|\_\_| |\_\_| \\\_\_\_| |\_\_| 聽|\_\_| |\_\_\_\_\_\_\_\_| 聽 聽 |\_\_| 聽 聽 |\_\_\_\_\_\_\_| 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 |\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 user\_wins += 1聽 聽 else:聽 聽 聽 print('piedra gana a tijera')聽 聽 聽 print('馃computer gano!')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽|\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 | 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽 \_\_ 聽 聽 聽\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 聽 聽\_\_\_ 聽 \_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_\_\_\_ 聽 \_\_\_\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽 \_\_ 聽 | | 聽 \_\_\_\_| | 聽 聽\_\_ 聽 | | 聽 \_\_ 聽|\_\_ 聽| 聽 | | 聽 \_\_\_\_\_| |\_\_\_ 聽 聽\_\_\_| | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽|\_\_| 聽| | 聽|\_\_\_\_ 聽| 聽 |\_\_| 聽| | 聽| 聽|\_ 聽 | | 聽 | | 聽|\_\_\_\_\_ 聽 聽 聽| 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 | 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽 \_\_\_\_\_| | 聽 \_\_\_\_| | 聽 \_\_ 聽 \_| | 聽| 聽 \_| 聽| | 聽 | |\_\_\_\_\_ 聽 | 聽 聽 | 聽| 聽 聽 | 聽 \_\_\_\_| 聽 聽| 聽| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽| 聽| 聽 聽 聽 | 聽|\_\_\_\_ 聽| 聽| 聽\ 聽\ 聽| 聽|\_\_| 聽\_\_| | 聽 | 聽\_\_\_\_\_| 聽| 聽 聽 | 聽| 聽 聽 | 聽|\_\_\_\_ 聽 聽 |\_\_| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽| 聽| 聽 聽|\_\_| 聽 聽 聽 |\_\_\_\_\_\_\_| |\_\_| 聽 \\\_\_\ |\_\_\_\_\_\_\_| 聽 聽|\_\_\_| |\_\_\_\_\_\_\_\_| 聽 聽 |\_\_| 聽 聽 |\_\_\_\_\_\_\_| 聽 聽 \_\_ 聽 聽 聽 聽 聽 聽')聽 聽 聽 print(' 聽 聽 聽|\_\_| 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 |\_\_| 聽 聽 聽 聽 聽 ')聽 聽 聽 print(' 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽')聽 聽 聽 computer\_wins += 1聽 return user\_wins, computer\_wins聽 def run\_game():聽 computer\_wins = 0聽 user\_wins = 0聽 rounds = 1聽 while True:聽 聽 print('\*' \* 10)聽 聽 print('BIENVENIDO A:')聽 聽 print('PIEDRA鉁', 'PAPEL 馃', 'TIJERA鉁岋笍')聽 聽 print('\*' \* 10)聽 聽 print('鉁达笍 聽ROUND 聽鉁达笍', rounds)聽 聽 print('\*' \* 10)聽 聽 聽 print('computer\_wins馃', computer\_wins)聽 聽 print('user\_wins馃挭', user\_wins)聽 聽 rounds += 1聽 聽 聽 user\_option, computer\_option = choice\_options()聽 聽 聽 user\_wins, computer\_wins = check\_rules(user\_option, computer\_option, user\_wins, computer\_wins)聽 聽 聽 if computer\_wins == 2:聽 聽 聽 print('El ganador es la COMPUTADORA馃')聽 聽 聽 break聽 聽 聽 if user\_wins == 2:聽 聽 聽 print('El ganador es el USUARIO馃懆')聽 聽 聽 breakrun\_game()

#esta fue mi solucion, espero les sirva

import random


def run_game():
    selection(0, 0)

def selection(com_win, usr_win):
    options = ["piedra", "papel", "tijera"]
    valid_selection = False
    user_selection = ""
    computer_selection = ""

    while not valid_selection:
        user_selection = input("Seleccione: piedra, papel o tijera: ").lower()
        computer_selection = random.choice(options)

        if user_selection not in options:
            print("Selecci贸n no v谩lida")
        else:
            valid_selection = True

    com_win, usr_win = rules(computer_selection, user_selection, com_win, usr_win)

    if com_win < 3 and usr_win < 3:
        selection(com_win, usr_win)
    elif com_win==3:
        print("隆Juego terminado!"+"\n"+"Pc Gana")
    else:
        print("隆Juego terminado!"+"\n"+"Jugador Gana")

def rules(com, usr, com_win, usr_win):
    round_result = ""

    if com == usr:
        round_result = "Empate"
    elif ((usr == "tijera" and com == "piedra") or
          (usr == "papel" and com == "tijera") or
          (usr == "piedra" and com == "papel")):
        round_result = "PC gana"
        com_win += 1
    else:
        round_result = "Usted gana"
        usr_win += 1

    print(f"{round_result}\nUsuario: {usr_win}\nPC: {com_win}")
    return com_win, usr_win

run_game()
Me demor茅 mucho en encontrar los errores, especialmente el return (None, None) no me funcionaba porque yo si estaba contando los empates, pero logr茅 la versi贸n con un n煤mero m铆nimo de victorias para declarar un ganador: ```````python #JUEGO DE PIEDRA, PAPEL O TIJERA import random print ("JUEGO DE PIEDRA, PAPEL O TIJERA") print("-"*50) rondas = int(input("Cuantas rondas hay que ganar para ganar del todo? ")) def choose_options(): options = ("piedra", "papel", "tijera") #pongo las opciones en una tupla para que no cambie. user_choice = input ("Piedra, papel o tijera (escoge solo uno): ") user_choice = user_choice.lower() #Convierto a min煤scula todo computer_choice = random.choice(options) # escojo al azar de la tupla options if not user_choice in options: print("Debes escoger entre las opciones expuestas") return None, computer_choice else: print ("La computadora escoge: ", computer_choice) print (f"Usuario: {user_choice} vs Computadora: {computer_choice}") return user_choice, computer_choice def check_rules(user_choice, computer_choice, user_wins, computer_wins, empates): if user_choice == computer_choice: empates += 1 elif user_choice == "piedra": if computer_choice == "papel": #print("gana la computadora") computer_wins += 1 else: #print("gana el usuario") user_wins += 1 elif user_choice == "papel": if computer_choice == "piedra": #print ("gana el usuario") user_wins += 1 else: #print("gana la computadora") computer_wins += 1 elif user_choice == "tijera": if computer_choice == "papel": #print("gana el usuario") user_wins += 1 else: #print("gana la computadora") computer_wins += 1 return (user_wins, computer_wins, empates) def run_game(): user_wins = 0 computer_wins = 0 empates = 0 while True: user_choice, computer_choice = choose_options() user_wins, computer_wins, empates = check_rules(user_choice, computer_choice, user_wins, computer_wins, empates) print (user_wins, computer_wins, empates) check_winner(user_wins, computer_wins) if (user_wins == rondas or computer_wins == rondas): break def check_winner(user_wins, computer_wins): if user_wins == rondas or computer_wins == rondas: if user_wins > computer_wins: print (f"El usuario es el ganador! con un marcador de {user_wins} a {computer_wins}") elif user_wins < computer_wins: print (f"La computadora es la ganadora! con un marcador de {computer_wins} a {user_wins}") else: print (f"Se produjo un empate! con un marcador de {computer_wins} a {user_wins}") run_game() ``````js ```````
creo que va muy rapido para asimilar el concepto y no entendi muy bien
Un poco dif铆cil :c lo tendre que ver varias veces
No s茅 si al docente le falta pericia pedag贸gica o qu茅 ocurre pero cada vez estoy m谩s perdido.
Mi Soluci贸n! ```js import random def choose_options(): options = ('piedra', 'papel', 'tijera') user_option = input('piedra, papel o tijera?').lower() if not user_option in options: print('Opci贸n inv谩lida') ##continue return None, None computer_option = random.choice(options) return user_option, computer_option def check_rules(user_option, computer_option, user_wins, computer_wins): if user_option == computer_option: print('Empate!') elif user_option == 'piedra': if computer_option == 'tijera': print('Ganaste!') user_wins += 1 else: print('Perdiste!') computer_wins += 1 elif user_option == 'papel': if computer_option == 'piedra': print('Ganaste!') user_wins += 1 else: print('Perdiste!') computer_wins += 1 elif user_option == 'tijera': if computer_option == 'papel': print('Ganaste!') user_wins += 1 else: print('Perdiste!') computer_wins += 1 return user_wins, computer_wins def message_winner(user_wins, computer_wins, rounds): if computer_wins == 3: message_each_round(user_wins, computer_wins, rounds='END') print('Perdiste todo!') exit() if user_wins == 3: message_each_round(user_wins, computer_wins, rounds='END') print('Ganaste todo!') exit() def message_each_round(user_wins, computer_wins, rounds): print('*' * 10) print('ROUND ', rounds) print('*' * 10) print('computer_wins ', computer_wins) print('user_wins ', user_wins) def run_game(): computer_wins = 0 user_wins = 0 rounds = 1 while True: message_each_round(user_wins, computer_wins, rounds) user_option, computer_option = choose_options() user_wins, computer_wins = check_rules(user_option, computer_option, user_wins, computer_wins) message_winner(user_wins, computer_wins, rounds) rounds += 1 run_game() ```import random def choose\_options(): options = ('piedra', 'papel', 'tijera') user\_option = input('piedra, papel o tijera?').lower() if not user\_option in options: print('Opci贸n inv谩lida') \##continue return None, None computer\_option = random.choice(options) return user\_option, computer\_option def check\_rules(user\_option, computer\_option, user\_wins, computer\_wins): if user\_option == computer\_option: print('Empate!') elif user\_option == 'piedra': if computer\_option == 'tijera': print('Ganaste!') user\_wins += 1 else: print('Perdiste!') computer\_wins += 1 elif user\_option == 'papel': if computer\_option == 'piedra': print('Ganaste!') user\_wins += 1 else: print('Perdiste!') computer\_wins += 1 elif user\_option == 'tijera': if computer\_option == 'papel': print('Ganaste!') user\_wins += 1 else: print('Perdiste!') computer\_wins += 1 return user\_wins, computer\_wins def message\_winner(user\_wins, computer\_wins, rounds): if computer\_wins == 3: message\_each\_round(user\_wins, computer\_wins, rounds='END') print('Perdiste todo!') exit() if user\_wins == 3: message\_each\_round(user\_wins, computer\_wins, rounds='END') print('Ganaste todo!') exit() def message\_each\_round(user\_wins, computer\_wins, rounds): print('\*' \* 10) print('ROUND ', rounds) print('\*' \* 10) print('computer\_wins ', computer\_wins) print('user\_wins ', user\_wins) def run\_game(): computer\_wins = 0 user\_wins = 0 rounds = 1 while True: message\_each\_round(user\_wins, computer\_wins, rounds) user\_option, computer\_option = choose\_options() user\_wins, computer\_wins = check\_rules(user\_option, computer\_option, user\_wins, computer\_wins) message\_winner(user\_wins, computer\_wins, rounds) rounds += 1 run\_game()
Mi forma de hacerlo ```js import random def game(): points_robot = 0 points_human = 0 continue_game = True while continue_game: user_option = input('piedra, papel o tijera => ') user_option = user_option.lower() options =["piedra","papel","tijera"] if not user_option in options: print ("Opcion no valida") else: if_winner_robot = rules(options,user_option) if if_winner_robot != None: points_human, points_robot = gamepoints(if_winner_robot,points_robot,points_human) else: print("Empate") repeat = input('desea seguir presiona enter, si no cualquier tecla mas enter: ') if repeat == "": continue_game = True else: continue_game = False print("Puntaje final") print("Puntos de la maquina: ", points_robot ) print("Tu puntaje: ", points_human ) def rules(options,user_option): computer_option = random.choice(options) print("la maquina saca", computer_option) if user_option == computer_option: return None elif user_option == "papel": if_winner_robot = paper(computer_option) elif user_option == "piedra": if_winner_robot = rock(computer_option) elif user_option == "tijera": if_winner_robot = scisor(computer_option) return if_winner_robot def paper(robot_value): if robot_value == "piedra": return False return True def scisor(robot_value): if robot_value == "piedra": return True return False def rock(robot_value): if robot_value == "tijera": return False return True def gamepoints(if_winner_robot,points_robot,points_human): if if_winner_robot: points_robot += 1 print ("Gana la maquina") else: points_human += 1 print ("Ganaste!!!") print("Puntos de la maquina son: ",points_robot) print("Tus puntos son: " , points_human) return points_robot, points_human play = game() ```import random def game():聽 聽 points\_robot = 0聽 聽 points\_human = 0聽 聽 continue\_game = True聽 聽 while continue\_game:聽 聽 聽 聽 user\_option = input('piedra, papel o tijera => ')聽 聽 聽 聽 user\_option = user\_option.lower()聽 聽 聽 聽 options =\["piedra","papel","tijera"]聽 聽 聽 聽 if not 聽user\_option in options:聽 聽 聽 聽 聽 聽 print ("Opcion no valida")聽 聽 聽 聽 else:聽 聽 聽 聽 聽 聽 if\_winner\_robot = 聽rules(options,user\_option)聽 聽 聽 聽 聽 聽 if if\_winner\_robot != None:聽 聽 聽 聽 聽 聽 聽 聽 points\_human, points\_robot = gamepoints(if\_winner\_robot,points\_robot,points\_human)聽 聽 聽 聽 聽 聽 else:聽 聽 聽 聽 聽 聽 聽 聽 print("Empate")聽 聽 聽 聽 聽 聽 repeat 聽= input('desea seguir presiona enter, si no cualquier tecla mas enter: ')聽 聽 if repeat == "":聽 聽 聽 聽 continue\_game = True聽 聽 else:聽 聽 聽 聽 continue\_game = False聽 聽 聽 聽 print("Puntaje final")聽 聽 聽 聽 print("Puntos de la maquina: ", points\_robot )聽 聽 聽 聽 print("Tu puntaje: ", points\_human ) def rules(options,user\_option):聽 聽 computer\_option = random.choice(options)聽 聽 print("la maquina saca", computer\_option)聽 聽 if user\_option == computer\_option:聽 聽 聽 聽 return None聽 聽 elif user\_option == "papel":聽 聽 聽 聽 if\_winner\_robot = paper(computer\_option)聽 聽 聽 聽 聽 聽 elif user\_option == "piedra":聽 聽 聽 聽 if\_winner\_robot = rock(computer\_option)聽 聽 聽 聽 聽 聽 elif user\_option == "tijera":聽 聽 聽 聽 if\_winner\_robot = scisor(computer\_option) 聽 聽 return if\_winner\_robot def paper(robot\_value):聽 聽 if robot\_value == "piedra":聽 聽 聽 聽 return False聽 聽 return True def scisor(robot\_value):聽 聽 if robot\_value == "piedra":聽 聽 聽 聽 return True聽 聽 return False def rock(robot\_value):聽 聽 if robot\_value == "tijera":聽 聽 聽 聽 return False聽 聽 return True def gamepoints(if\_winner\_robot,points\_robot,points\_human):聽 聽 if if\_winner\_robot:聽 聽 聽 聽 points\_robot += 1聽 聽 聽 聽 print ("Gana la maquina")聽 聽 else:聽 聽 聽 聽 points\_human += 1聽 聽 聽 聽 print ("Ganaste!!!")聽 聽 print("Puntos de la maquina son: ",points\_robot)聽 聽 print("Tus puntos son: " , points\_human)聽 聽 return points\_robot, points\_human play = game()
Lo que el profe dej贸 pendiente lo hice as铆 ![](https://static.platzi.com/media/user_upload/code-d7f7c57b-765c-4732-9a40-f6a803443742.jpg)
Aqu铆 mi ejemplo... Lo hab铆a puesto antes pero no se que hice mal que no se paso mi comentario XD: `# LIBRERIAS NECESARIASimport random# VARIABLES GLOBALESvictorias_cpu = 0victorias_player = 0ronda = 1# FUNCION DE JUGADA``def`` jugada():聽 聽 # Variables locales聽 聽 opciones = ("piedra", "papel", "tijera")聽 聽 opcion_player = input("Elige piedra, papel o tijera => ")聽 聽 # Condicion en caso de opcion no valida聽 聽 if not opcion_player in opciones:聽 聽 聽 聽 print("Esa opcion no es valida, quiza escribiste mal. Vuelve a jugar.")聽 聽 聽 聽 opcion_player = input("Elige piedra, papel o tijera ESCRIBE BIEN >:P => ")聽 聽 聽 聽 if not opcion_player in opciones:聽 聽 聽 聽 聽 聽 print("隆A QUELA! 驴NO ENTENDEMOS VERDAD? PUES 隆TE FRIEGAS!")聽 聽 聽 聽 聽 聽 print("TE QUEDAS SIN JUGAR POR BESTIA <(*~*< )")聽 聽 opcion_player = opcion_player.lower()聽 聽 opcion_cpu = random.choice(opciones)聽 聽 print(``f``"El jugador eligi贸 => {opcion_player}")聽 聽 print(``f``"La computadora eligi贸 => {opcion_cpu}")聽 聽 return opcion_player, opcion_cpu# FUNCION DE COMPARATIVAS (REGLAS DEL JUEGO)``def`` reglas(``op``, ``oc``, ``victorias_player``, ``victorias_cpu``):聽 聽 # Asignacion de variables locales聽 聽 user_wins = victorias_player聽 聽 computer_wins = victorias_cpu聽 聽 user_option = op聽 聽 computer_option = oc聽 聽 # Comienza a comparar quien gana la ronda聽 聽 if user_option == computer_option:聽 聽 聽 聽 print('Empate. No se suma puntos a nadie.\n')聽 聽 elif user_option == 'piedra':聽 聽 聽 聽 if computer_option == 'tijera':聽 聽 聽 聽 聽 聽 print('Piedra aplasta a tijera')聽 聽 聽 聽 聽 聽 print('Por lo tanto el jugador gana esta ronda.\n')聽 聽 聽 聽 聽 聽 user_wins += 1聽 聽 聽 聽 else:聽 聽 聽 聽 聽 聽 print('Papel cubre a piedra')聽 聽 聽 聽 聽 聽 print('Por lo tanto computadora gana esta ronda.\n')聽 聽 聽 聽 聽 聽 computer_wins += 1聽 聽 elif user_option == 'papel':聽 聽 聽 聽 if computer_option == 'piedra':聽 聽 聽 聽 聽 聽 print('Papel cubre a piedra')聽 聽 聽 聽 聽 聽 print('Por lo tanto el jugador gana esta ronda.\n')聽 聽 聽 聽 聽 聽 user_wins += 1聽 聽 聽 聽 else:聽 聽 聽 聽 聽 聽 print('Tijera corta a papel')聽 聽 聽 聽 聽 聽 print('Por lo tanto computadora gana esta ronda.\n')聽 聽 聽 聽 聽 聽 computer_wins += 1聽 聽 elif user_option == 'tijera':聽 聽 聽 聽 if computer_option == 'papel':聽 聽 聽 聽 聽 聽 print('Tijera corta a papel')聽 聽 聽 聽 聽 聽 print('Por lo tanto el jugador gana esta ronda.\n')聽 聽 聽 聽 聽 聽 user_wins += 1聽 聽 聽 聽 else:聽 聽 聽 聽 聽 聽 print('Piedra aplasta a tijera')聽 聽 聽 聽 聽 聽 print('Por lo tanto computadora gana esta ronda.\n')聽 聽 聽 聽 聽 聽 computer_wins += 1聽 聽 return user_wins, computer_wins# CICLOS DE RONDAS y funcion principal (no es necesario definirla)while True:聽 聽 print("*" * 100)聽 聽 print(``f``"Ronda actual 聽 聽 聽 聽 聽 聽 聽 聽=> {ronda}")聽 聽 print("*" * 100)聽 聽 print(``f``"Victorias del jugador 聽 聽 聽 => {victorias_player}")聽 聽 print(``f``"Victorias de la computadora => {victorias_cpu}")聽 聽 if ronda == 1:聽 聽 聽 聽 print(">>> 隆QUE EL JUEGO COMIENZE! <<<")聽 聽 op, oc = jugada() # retorno de valor por jugada聽 聽 # Condicional (si el jugador no entiende las instrucciones pues se queda sin jugar)聽 聽 if not op in ("piedra", "papel", "tijera"):聽 聽 聽 聽 break聽 聽 victorias_player, victorias_cpu = reglas(op, oc, victorias_player, victorias_cpu) # retorna el puntaje acumulado聽 聽 if victorias_player == 2 or victorias_player == 3 and victorias_player > victorias_cpu:聽 聽 聽 聽 聽 聽 print(``f``"El jugador le gano con puntaje {victorias_player} a la computadora de puntaje {victorias_cpu}")聽 聽 聽 聽 聽 聽 break聽 聽 elif victorias_cpu == 2 or victorias_cpu == 3 and victorias_cpu > victorias_player: 聽 聽 聽 聽 聽 聽 print(``f``"Hijoles te gano la computadora {victorias_cpu} VS tus {victorias_player} victorias.")聽 聽 聽 聽 聽 聽 break聽 聽 ronda += 1`
\# LIBRERIAS NECESARIASimport random# VARIABLES GLOBALESvictorias\_cpu = 0victorias\_player = 0ronda = 1# FUNCION DE JUGADA*def* jugada():聽 聽 # Variables locales聽 聽 opciones = ("piedra", "papel", "tijera")聽 聽 opcion\_player = input("Elige piedra, papel o tijera => ")聽 聽 # Condicion en caso de opcion no valida聽 聽 if not opcion\_player in opciones:聽 聽 聽 聽 print("Esa opcion no es valida, quiza escribiste mal. Vuelve a jugar.")聽 聽 聽 聽 opcion\_player = input("Elige piedra, papel o tijera ESCRIBE BIEN >:P => ")聽 聽 聽 聽 if not opcion\_player in opciones:聽 聽 聽 聽 聽 聽 print("隆A QUELA! 驴NO ENTENDEMOS VERDAD? PUES 隆TE FRIEGAS!")聽 聽 聽 聽 聽 聽 print("TE QUEDAS SIN JUGAR POR BESTIA <(\*~\*< )")聽 聽 opcion\_player = opcion\_player.lower()聽 聽 opcion\_cpu = random.choice(opciones)聽 聽 print(*f*"El jugador eligi贸 => {opcion\_player}")聽 聽 print(*f*"La computadora eligi贸 => {opcion\_cpu}")聽 聽 return opcion\_player, opcion\_cpu# FUNCION DE COMPARATIVAS (REGLAS DEL JUEGO)*def* reglas(*op*, *oc*, *victorias\_player*, *victorias\_cpu*):聽 聽 # Asignacion de variables locales聽 聽 user\_wins = victorias\_player聽 聽 computer\_wins = victorias\_cpu聽 聽 user\_option = op聽 聽 computer\_option = oc聽 聽 # Comienza a comparar quien gana la ronda聽 聽 if user\_option == computer\_option:聽 聽 聽 聽 print('Empate. No se suma puntos a nadie.\n')聽 聽 elif user\_option == 'piedra':聽 聽 聽 聽 if computer\_option == 'tijera':聽 聽 聽 聽 聽 聽 print('Piedra aplasta a tijera')聽 聽 聽 聽 聽 聽 print('Por lo tanto el jugador gana esta ronda.\n')聽 聽 聽 聽 聽 聽 user\_wins += 1聽 聽 聽 聽 else:聽 聽 聽 聽 聽 聽 print('Papel cubre a piedra')聽 聽 聽 聽 聽 聽 print('Por lo tanto computadora gana esta ronda.\n')聽 聽 聽 聽 聽 聽 computer\_wins += 1聽 聽 elif user\_option == 'papel':聽 聽 聽 聽 if computer\_option == 'piedra':聽 聽 聽 聽 聽 聽 print('Papel cubre a piedra')聽 聽 聽 聽 聽 聽 print('Por lo tanto el jugador gana esta ronda.\n')聽 聽 聽 聽 聽 聽 user\_wins += 1聽 聽 聽 聽 else:聽 聽 聽 聽 聽 聽 print('Tijera corta a papel')聽 聽 聽 聽 聽 聽 print('Por lo tanto computadora gana esta ronda.\n')聽 聽 聽 聽 聽 聽 computer\_wins += 1聽 聽 elif user\_option == 'tijera':聽 聽 聽 聽 if computer\_option == 'papel':聽 聽 聽 聽 聽 聽 print('Tijera corta a papel')聽 聽 聽 聽 聽 聽 print('Por lo tanto el jugador gana esta ronda.\n')聽 聽 聽 聽 聽 聽 user\_wins += 1聽 聽 聽 聽 else:聽 聽 聽 聽 聽 聽 print('Piedra aplasta a tijera')聽 聽 聽 聽 聽 聽 print('Por lo tanto computadora gana esta ronda.\n')聽 聽 聽 聽 聽 聽 computer\_wins += 1聽 聽 return user\_wins, computer\_wins# CICLOS DE RONDAS y funcion principal (no es necesario definirla)while True:聽 聽 print("\*" \* 100)聽 聽 print(*f*"Ronda actual 聽 聽 聽 聽 聽 聽 聽 聽=> {ronda}")聽 聽 print("\*" \* 100)聽 聽 print(*f*"Victorias del jugador 聽 聽 聽 => {victorias\_player}")聽 聽 print(*f*"Victorias de la computadora => {victorias\_cpu}")聽 聽 if ronda == 1:聽 聽 聽 聽 print(">>> 隆QUE EL JUEGO COMIENZE! <<<")聽 聽 op, oc = jugada() # retorno de valor por jugada聽 聽 # Condicional (si el jugador no entiende las instrucciones pues se queda sin jugar)聽 聽 if not op in ("piedra", "papel", "tijera"):聽 聽 聽 聽 break聽 聽 victorias\_player, victorias\_cpu = reglas(op, oc, victorias\_player, victorias\_cpu) # retorna el puntaje acumulado聽 聽 if victorias\_player == 2 or victorias\_player == 3 and victorias\_player > victorias\_cpu:聽 聽 聽 聽 聽 聽 print(*f*"El jugador le gano con puntaje {victorias\_player} a la computadora de puntaje {victorias\_cpu}")聽 聽 聽 聽 聽 聽 break聽 聽 elif victorias\_cpu == 2 or victorias\_cpu == 3 and victorias\_cpu > victorias\_player: 聽 聽 聽 聽 聽 聽 print(*f*"Hijoles te gano la computadora {victorias\_cpu} VS tus {victorias\_player} victorias.")聽 聽 聽 聽 聽 聽 break聽 聽 ronda += 1
Se me hizo p茅sima esta clase; era m谩s f谩cil empezar de cero e ir explicando, que estar copiando, pegando y editando todo el c贸digo. Nos pasamos m谩s tiempo viendo donde pegar e identar, que en explicar los scopes de cada variable, que creo es lo primordial.

Mi aporte:

import random





def chooseOptions():
  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')
    #continue
    return None,None

  computer_option = random.choice(options)

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

  return user_option,computer_option

def checkRules(user_option,computer_option,user_wins,computer_wins):
  if user_option == computer_option:
   print('Empate!')
  elif user_option == 'piedra':
   if computer_option == 'tijera':
     print('piedra gana a tijera')
     print('user gano!')
     user_wins += 1
   else:
     print('Papel gana a piedra')
     print('computer gano!')
     computer_wins += 1
  elif user_option == 'papel':
   if computer_option == 'piedra':
     print('papel gana a piedra')
     print('user gano')
     user_wins += 1
   else:
     print('tijera gana a papel')
     print('computer gano!')
     computer_wins += 1
  elif user_option == 'tijera':
   if computer_option == 'papel':
     print('tijera gana a papel')
     print('user gano!')
     user_wins += 1
   else:
     print('piedra gana a tijera')
     print('computer gano!')
     computer_wins += 1
  return user_wins,computer_wins

def checkWinner(user_wins,computer_wins):
  if computer_wins == 2:
    print('El ganador es la computadora')

  if user_wins == 2:
    print('El ganador es el usuario')


def runGame():
  rounds = 1
  computer_wins = 0
  user_wins = 0

  while computer_wins < 2 and user_wins < 2:

    print('*' * 10)
    print('ROUND', rounds)
    print('*' * 10)

    print('computer_wins', computer_wins)
    print('user_wins', user_wins)
    rounds += 1

    user_option,computer_option = chooseOptions()
    user_wins,computer_wins=checkRules(user_option,computer_option,user_wins,computer_wins)

  checkWinner(user_wins,computer_wins)

runGame()

Mi solucion para el reto:

def check_winner(user_wins, computer_wins):
  if computer_wins == 2:
    print('El ganador es la computadora')
    return True

  if user_wins == 2:
    print('El ganador es el usuario')
    return True
  return False

y dentro de la funcion run_game

    has_winner = check_winner(user_wins, computer_wins)

    if has_winner:
      break
Casi no lo logro, toda la tarde, para darme cuenta que las funciones son caprichosas en su scope, al final toca ponerle varios par谩metros a cada funci贸n hasta 5, cosa rara, pero bueno

My Frankestein pero funciona ajajaja xD

import random



def run_game():
  seguir = "si"
  tuple = ["si","no"]
  count_u=0 
  count_c=0
  draw=0

  while seguir == "si":
      user, Computer = choose_options()
      count_u, count_c, draw = rules(user, Computer,count_u, count_c, draw)
      seguir = input("Quieres seguir jugando? ")
      seguir = seguir.lower()
      while seguir not in tuple:
        print(".")
        print("Esa no es una opcion valida, ingrese si o no...")
        print(".")


def choose_options():
  options = ["piedra", "papel", "tijeras"]
  user = input("Elija, piedra, papel o tijeras =>")
  user = user.lower()

  if user not in options:
    print("esa no es una opcion valida")
    choose_options()
    
  Computer = random.choice(options)
  print(".")
  print(".")
  print(".")
  print("Usted elegio =>", user)
  print(".")
  print(".")
  print(".")
  print (f"El opponente elijio => {Computer}")
  print(".")
  print(".")
  print(".")
  return user, Computer

def rules(user, Computer,count_u=0, count_c=0, draw=0):
  
  if user == Computer:
    draw +=1 
    print("鈾︹櫐鈾 Es un empate 鈾︹櫐鈾")

  elif user == "papel":
    if Computer == "piedra":
      count_u +=1
      print("Ganaste 鈾♀笢(硕藘 岬 藗硕)飧濃櫋")
    else:
      count_c +=1
      print ("Perdiste ( 鈥 岽 鈥 锝)")

  elif user == "piedra":
    if Computer == "tijeras":
      count_u +=1
      print("Ganaste 鈾♀笢(硕藘 岬 藗硕)飧濃櫋")
    else:
      count_c +=1
      print ("Perdiste ( 鈥 岽 鈥 锝)")

  elif user == "tijeras":
    if Computer == "papel":
      count_u +=1
      print("Ganaste 鈾♀笢(硕藘 岬 藗硕)飧濃櫋")
    else:
      count_c +=1
      print ("Perdiste ( 鈥 岽 鈥 锝)")

  print(".")
  print(".")
  print(".")
  print(f"掳-------------------掳")
  print(f"|    Usuario   |  {count_u }  |")
  print(f"|              |     |")
  print(f"|  Computadora |  {count_c}  |")
  print(f"|              |     |")
  print(f"|    Empates   |  {draw}  |")
  print(f"|              |     |")
  print(f"掳--------------------掳")
  print(".")
  print(".")
  print(".")

  return count_u, count_c, draw



run_game()


  
```python def check_winner (user_wins, computer_wins): if computer_wins == 2: print ("El ganador es la computador, suerte para la pr贸xima") print ("Ejecuta de nuevo el juego para m谩s rondas") exit () if user_wins == 2: print ("El ganador eres t煤, excelentes elecciones") print ("Ejecuta de nuevo el juego para m谩s rondas") exit () ```

Hola compa帽eros, espero este aporte les funcione, me toco volver a hacer el juego desde cero, por que aun mi logica no me da para restructurar, es algo que debo mejorar, entonces use esta pagina, que me va diciendo como se esta ejecutando mi codigo y en que orden , una explicacion bastante amigable.
https://pythontutor.com

Mi forma de hacerlo con menor cantidad de lineas de codigo posibles para mas limpieza.

#piedra papel o tijeras 2
import random
def jugar():
  piedra = 1
  papel = 2
  tijeras = 3

  jugador = int(input("Ingrese 1 para piedra, 2 para papel o 3 para tijeras: "))
  
  pc = random.randint(1, 3)

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

print(jugar())

refactor game鈥 fue lo mejor,

```js import random def choose_options(): 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') #continue return None, None computer_option = random.choice(options) print('User option =>', user_option) print('Computer option =>', computer_option) return user_option, computer_option def check_rules(user_option, computer_option, user_wins, computer_wins): if user_option == computer_option: print('Empate!') elif user_option == 'piedra': if computer_option == 'tijera': print('piedra gana a tijera') print('user gano!') user_wins += 1 else: print('Papel gana a piedra') print('computer gano!') computer_wins += 1 elif user_option == 'papel': if computer_option == 'piedra': print('papel gana a piedra') print('user gano') user_wins += 1 else: print('tijera gana a papel') print('computer gano!') computer_wins += 1 elif user_option == 'tijera': if computer_option == 'papel': print('tijera gana a papel') print('user gano!') user_wins += 1 else: print('piedra gana a tijera') print('computer gano!') computer_wins += 1 return user_wins, computer_wins def check_winner(user_wins, computer_wins): if computer_wins == 2: print('El ganador es la computadora') #break if user_wins == 2: print('El ganador es el usuario') #break def run_game(): user_wins = 0 computer_wins = 0 rounds = 1 while True: print('*' * 10) print('ROUND', rounds) print('*' * 10) print(' ' * 10) print('computer_wins', computer_wins) print('user_wins', user_wins) rounds += 1 user_option, computer_option = choose_options() user_wins, computer_wins = check_rules(user_option, computer_option, user_wins, computer_wins) check_winner(user_wins, computer_wins) run_game() ```

Esta forma de optimizar el codigo me parece interesante porque puedo aprender a como mejorarlo y recortarlo a base de funciones.

La verdad esque estoy de acuerdo con varios usuarios. Debio hacer esto con funciones desde 0. Desarmar y armar todo el codigo causa mucha confusion, toca ver el video una primera vez para ver como lo hace, una segunda para armarlo y una tercera para corregir los errores al hacerlo para emular su codigo, es terriblemente trabajoso y no se siente como poner en practica lo aprendido sino tratar de seguir su ritmo.

Aqu铆 va mi aporte

import random
print(" "*20)
print("*"*20)
print("Welcome to the rock, paper and scissors,  game!")
print("*"*20)
options = ("piedra","papel","tijera")

rounds = 1
computer_win = 0
user_win = 0

while True:
  print(" "*20)
  print("*"*10)
  print("ROUND ", rounds)
  print("*"*10)
  print(" "*20)
  print("El computador lleva", computer_win, " y el usuario lleva" , user_win, "victoria(s)")
  print(" "*20)
  user = input("驴piedra, papel o tijera?: ")
  computer_option = random.choice(options)
  print(" "*20)
  print("El usuario eligio = ", user)
  print("la computadora eligio = ", computer_option)
  user = user.lower()
  if not user in options:
    print("*"*20)
    print("Esa opci贸n no es valida, repite la ronda")
    print("*"*20)
    continue
    

    
  if user == computer_option:
      print(" "*20)
      print("Empate!")
    
  elif (user == "piedra" and computer_option ==
      "tijera") or \
       (user == "papel" and computer_option ==
      "piedra") or \
       (user == "tijera" and computer_option == 
      "papel"):
      print(" "*20)
      print("Ganaste")
      user_win += 1
  else:
      print(" "*20)
      print("Perdiste")
      computer_win +=1

  if computer_win == 2 :
    print(" "*20)
    print("El Computador Gano el Juego !!!!")
    break

  if user_win == 2 : 
    print(" "*20)
    print("Ganaste el Juego !!!!")
    break
  rounds +=1
  

La facilidad de crear funciones con muchos parametros es muy sencillo, y parece que python se encargar de saber el tipo de dato que le llega como parametro y en otros lenguajes se typeaba el tipo de dato.

Es interesante lo que sucede en esta clase. Me lo tomo como observar a otro ingeniero realizar una refactorizaci贸n, mas no es el mismo m茅todo que debo seguir yo para aplicar el conocimiento de las funciones en el proyecto.
.
Me gusta verlo as铆.

* Este es mi aporte ```js import random def choose_options(): options = ('piedra', 'papel', 'tijera') user_option = input('Piedra, papel o tijera => ').lower().strip() if not user_option in options: print('Esa opci贸n no es valida') #continue return None, None computer_option = random.choice(options) print('User option =>', user_option) print('Computer option =>', computer_option) return user_option, computer_option def check_rules(user_option, computer_option, user_wins, computer_wins): user_to_win_1 = user_option == 'piedra' and computer_option == 'tijera' user_to_win_2 = user_option == 'papel' and computer_option == 'piedra' user_to_win_3 = user_option == 'tijera' and computer_option == 'papel' if user_option == computer_option: print('Empate!') elif user_to_win_1 or user_to_win_2 or user_to_win_3: print(f'{user_option} gana a {computer_option}') print('Usuario gana!') user_wins += 1 else: print(f'{computer_option} gana a {user_option}') print('Computer gana') computer_wins += 1 return user_wins, computer_wins def check_winner(user_wins, computer_wins): if computer_wins > user_wins: print(f'Computadora ganaaaaa!!!馃 {computer_wins} vs {user_wins}') elif user_wins > computer_wins: print(f'Usuario ganaaaa!馃憣{user_wins} vs {computer_wins}') else: print(f'{user_wins} vs {computer_wins} es un empateeeee!!') def run_game(): computer_wins = 0 user_wins = 0 rounds = 1 while rounds <= 3: print('---Bienvenido al juego piedra馃, papel馃Щ o tijera鉁傦笍') print('ROUND => ', rounds) print('*' * 30) print('Computer wins => ', computer_wins) print('User wins => ', user_wins) rounds += 1 user_option, computer_option = choose_options() user_wins, computer_wins = check_rules(user_option, computer_option, user_wins, computer_wins) check_winner(user_wins, computer_wins) run_game() ```
Hola buenas a todos! Tengo una pregunta espero que alguien me la pueda resolver. 驴Con que botones identas m谩s r谩pido las partes del c贸digo? Para no tener que ir con la barra del espacio una por una muchas gracias de antemano. Es una de las cosas que le faltar铆an a las explicaciones del profesor a mi parecer para poder ser m谩s eficiente.

alguien me explica porque hay que poner eso aca?

Hola a todos,
este es mi aporte , he querido practicar con el juego 鈥淧IEDRA, PAPEL, TIJERA, LAGARTO, SPOCK鈥, el 煤nico lio es que aun no se por que no suma las victorias en las opciones lagarto y Spock, si alguien me puede explicar el porque le agradecer铆a mucho.

<code>
import random

def chose_option():
    options = ('piedra', 'papel', 'tijera', "lagarto", "spock" )
    user_option = input('piedra, papel, tijera, lagarto, spock => ')
    user_option = user_option.lower()
    if not user_option in options:
      print('esa opcion no es valida')
      return None,None 

    computer_option = random.choice(options)

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

def check_rules (user_option, computer_option, user_wins, computer_wins):      
    
    if user_option == computer_option:
        print('Empate!')
    
    elif user_option == 'piedra':
        if computer_option == 'tijera':
            print('piedra gana a tijera')
            print('user gano!')
            user_wins += 1
        if computer_option == 'lagarto':
            print('Piedra aplasta a lagarto')
            print('User gano!')
            user_wins += 1
        if computer_option == 'spock':
            print('Spock vaporiza a piedra')
            print('computer gana!')
            computer_wins += 1
        else:
            print('Papel gana a piedra')
            print('computer gano!')
            computer_wins += 1    
    
    elif user_option == 'papel':
        if computer_option == 'piedra':
            print('papel gana a piedra')
            print("User gano")
            user_wins += 1
        if computer_option == 'spock':
            print('Papel desautoriza a Spock')
            print('User gano!')
            user_wins += 1
        if computer_option == 'lagarto':
            print('Lagarto devora papel')
            print('computer gana!')
            computer_wins += 1
        else:
            print("Tijera gana a papel")
            print("Computer gana! ")
            computer_wins += 1
        
    elif user_option == 'tijera':
        if computer_option == 'papel':
            print('tijera gana a papel')
            print('user gano!')
            user_wins += 1
        if computer_option == 'lagarto':
            print('tijera decapita a lagarto')
            print('user gano!')
            user_wins += 1
        if computer_option == 'spock':
            print('Spock rompe tijera')
            print('computer gano!')
            computer_wins += 1   
        else:
            print('Piedra gana a tijera')
            print('computer gano!')
            computer_wins += 1    

    elif user_option == 'lagarto':
        if computer_option == 'papel':
            print('lagarto dedora a papel')
            print('user gano!')
            user_wins += 1
        if computer_option == 'spock':
            print('lagarto envenena a spock')
            print('user gano!')
            user_wins += 1
        if computer_option == 'tijera':
            print('Tijera decapita a lagarto')
            print('computer gano!')
            computer_wins += 1   
        else:
            print('Piedra aplasta a lagarto')
            print('computer gano!')
            computer_wins += 1   

    elif user_option == 'Spock':
        if computer_option == 'tijera':
            print('Spock rompe tijera')
            print('user gano!')
            user_wins += 1
        if computer_option == 'piedra':
            print('Spock vaporiza piedra')
            print('user gano!')
            user_wins += 1
        if computer_option == 'lagarto':
            print('Lagarto envenana a Spock')
            print('computer gano!')
            computer_wins += 1   
        else:
            print('Papel desautoriza a Spock')
            print('computer gano!')
            computer_wins += 1   

    return user_wins, computer_wins


def run_game():
  computer_wins = 0
  user_wins = 0  
  rounds = 1

  while True:
    print('*' * 10)
    print('ROUND', rounds)
    print('*' * 10)

    print('computer_wins', computer_wins)
    print('user_wins', user_wins)
    rounds += 1

    user_option, computer_option = chose_option()
    user_wins, computer_wins = check_rules(user_option, computer_option, user_wins, computer_wins)

    if computer_wins == 2:
      print('El ganador es la computadora')
      break

    if user_wins == 2:
      print('El ganador es el usuario')
      break

run_game()

Asi me quedo el mio - El que tiene 3 puntos gana.

  • Antes del refactor
  • Despues del refactor

A煤n no he empezado el video y con los comentarios ya estoy desanimado, ruego que no hagan tanta aportaci贸n negativa, denle like a un comentario negativo y respondan al mismo para agregar quejas, pero no hagan 40 aportes de quejas, es desalentador.



import random 

def Computadora_IA():
    Num = random.randint(1,3)
    if Num == 1:
        return "Piedra"
    elif Num == 2:
        return "Papel"
    else:
        return "Tijera"
    
def Condiciones(Computer, Human):
    if Computer == "Piedra" and Human == "Tijera" :
        return "Gano la Computadora"
    elif Computer == "Tijera" and Human == "Piedra":
        return "Gano el Humano"
    elif Computer == "Piedra" and Human == "Papel":
        return "Gano el Humano"
    elif Computer == "Papel" and Human == "Piedra":
        return "Gano la Computadora"
    elif Computer == "Papel" and Human == "Tijera":
        return "Gano el Humano"
    elif Computer == "Tijera" and Human == "Papel":
        return "Gano la Computadora"
    elif Computer or Human != "PapelTijeraPiedra":
        return "flaco que esribiste"  
    else:
        return "Empate"

Computer_win = False
Human_win = False
Rondas_computadora = 0
Rondas_Humano = 0

while Computer_win != True or Human_win != True:
    Computer_win = False
    Human_win = False


    #Tomando los datos de cada jugador
    Computadora = Computadora_IA()
    Humano = input("驴Piedra, Papel o Tijera? ")
    Humano_M = Humano.capitalize()
    Resultado = Condiciones(Computadora,Humano_M)

    if Resultado == "Gano la Computadora":
        print(Computadora)
        print(Humano_M)
        Rondas_computadora += 1
        print(f"Gano la computadora van {Rondas_computadora}-{Rondas_Humano}")
    elif Resultado == "Gano el Humano":
        print(Computadora)
        print(Humano_M)
        Rondas_Humano += 1
        print(f"Gano el humano van {Rondas_computadora}-{Rondas_Humano}")
    elif Resultado == "Empate":
        print(Computadora)
        print(Humano_M)
        print("Empate")
    elif Resultado == "flaco que esribiste":
        print(Computadora)
        print(Humano_M)
        print("Escribi bien capo sino no podemos jugar")
    
    if Rondas_computadora == 3:
        print("El Partido lo gano la computadora alto pt sos")
        Computer_win = True
        Rondas_computadora = 0
        Rondas_Humano = 0
    elif Rondas_Humano == 3:
        print("El Partido lo gano el humano les re cabio pedazos de metales oxidados")
        Human_win = True
        Rondas_computadora = 0
        Rondas_Humano = 0

Voy a comentar cada clase por que se que puedo y esto es para darme animos de seguir estudiando y cuando me gradue de tecnologo en desarrollo de software tener certificados a la mano

Hola, mi aporte con otra funci贸n

import random

def choose_option():
    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')
      #continue
      return None,None

    computer_option = random.choice(options)

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

    return user_option,computer_option

def check_rules(user_option,computer_option,user_wins,computer_wins):
    if user_option == computer_option:
        print('Empate!')
    elif user_option == 'piedra':
        if computer_option == 'tijera':
            print('piedra gana a tijera')
            print('user gano!')
            user_wins += 1
        else:
            print('Papel gana a piedra')
            print('computer gano!')
            computer_wins += 1
    elif user_option == 'papel':
        if computer_option == 'piedra':
            print('papel gana a piedra')
            print('user gano')
            user_wins += 1
        else:
            print('tijera gana a papel')
            print('computer gano!')
            computer_wins += 1
    elif user_option == 'tijera':
        if computer_option == 'papel':
            print('tijera gana a papel')
            print('user gano!')
            user_wins += 1
        else:
            print('piedra gana a tijera')
            print('computer gano!')
            computer_wins += 1
    return user_wins,computer_wins
def who_won(user_wins,computer_wins):

    if computer_wins == 2:
        print('El ganador es la computadora')
        return False
    elif  user_wins == 2:
        print('El ganador es el usuario')
        return False
    #break
    else:
        return True

 
    #break
    
def run_game():
    rounds = 1
    computer_wins = 0
    user_wins = 0
    won=True
    while won: 
        
        print('*' * 10)
        print('ROUND', rounds)
        print('*' * 10)

        print('computer_wins', computer_wins)
        print('user_wins', user_wins)
        rounds += 1
        user_option,computer_option=choose_option()

        user_wins,computer_wins=check_rules(user_option,computer_option,user_wins,computer_wins)
        won=who_won(user_wins,computer_wins)
        print(won)
        


run_game()

Me costo pero quedo, se me facilito tomar las variables globales dentro de la funci贸n con la palabra reservada global

import random

computer_wins = 0
user_wins = 0
rounds = 1

def chose_option():
    OPTIONS = ("piedra", "papel", "tijera")
    user_option = input(f"Escoge tu mano: {OPTIONS} => ").lower()
    computer_option = random.choice(OPTIONS)
    if user_option not in OPTIONS:
        print("\nEscoge una opci贸n valida para seguir avanzando 鉂")
        chose_option()
    return (user_option, computer_option)

def check_winer(user_option, computer_option):
    
    if user_option == computer_option:
        return "empate"
    elif user_option == "piedra":
        ganador = "user" if computer_option == "tijera" else "computer"
        return ganador
    elif user_option == "tijera":
        ganador = "user" if computer_option == "papel" else "computer"
        return ganador
    elif user_option == "papel":
        ganador = "user" if computer_option == "piedra" else "computer"
        return ganador

def update_board(ganador):
    global user_wins
    global computer_wins
    global rounds
    
    if ganador == "empate":
        print("\nEMPATE\n")
    elif ganador == "user":
        print("\nEl usuario gano 馃憤")
        user_wins += 1
    else:
        print("\nLa computadora gano 馃憥")
        computer_wins += 1
    print(f"USUARIO {user_wins} / COMPUTADORA {computer_wins}")

def end_game(user_wins, computer_wins):
    if user_wins == 3:
        print("馃弳馃弳馃弳 Ganaste")
    else:
        print("馃拃 Perdiste")


while user_wins <= 2 and computer_wins <= 2:
    print("*" * 10)
    print("ROUND", rounds)
    print("鈿" * 10, "\n\n")
    user_option, computer_option = chose_option()
    ganador = check_winer(user_option, computer_option)
    update_board(ganador)
    rounds += 1

end_game(user_wins, computer_wins)

Uff esto de refactorizar ha estado DIFICIL jajaja, pero ha valido absolutamente la pena, es el d铆a a d铆a de un programador, pausar, escribir, comparar, y lo ten茅is hecho! Nunca paremos de aprender!

import random


def choice(a):
  if a == 1:
    return 'piedra'
  elif a == 2:
    return 'papel'
  else:
    return 'tijera'


def choice_option():
  options = ('piedra', 'papel', 'tijera')

  user_option = int(
      input("Es coje un numero:\n1:馃  piedra\n2:馃Щ papel\n3:鉁傦笍  tijeras\n"))
  computer_option = random.choice(options)

  return user_option, computer_option


def check_rules(user_option, computer_option, user_win, computer_win, rounds):
  user_option = choice(user_option)

  print(f'Tu escogiste: {user_option}')
  print(f'La computadora escogio: {computer_option}')

  if user_option == 'piedra' and computer_option == 'tijera':
    print('ganaste')
    user_win += 1
  elif user_option == 'piedra' and computer_option == 'papel':
    print('perdiste')
    computer_win += 1
  elif user_option == 'tijera' and computer_option == 'papel':
    print('ganaste')
    user_win += 1
  elif user_option == 'tijera' and computer_option == 'piedra':
    print('perdiste')
    computer_win += 1
  elif user_option == 'papel' and computer_option == 'piedra':
    print('ganaste')
    user_win += 1
  elif user_option == 'papel' and computer_option == 'tijera':
    print('perdiste')
    computer_win += 1
  else:
    print('empataste')

  return user_win, computer_win


def check_winner(user_win, computer_win):
  print(f'\n馃檵 user => {user_win}\n馃 computer => {computer_win}\n')

  if user_win == 2 or computer_win == 2:
    exit()


def run_game():
  rounds = 1
  user_win = 0
  computer_win = 0

  while True:

    #system("cls")
    print(f'{"*" * 10}\nronda #{rounds}\n{"*" * 10}\n')

    user_option, computer_option = choice_option()

    if user_option >= 1 and user_option <= 3:
      user_win, computer_win = check_rules(user_option, computer_option,
                                           user_win, computer_win, rounds)

      rounds += 1

      check_winner(user_win, computer_win)

    else:
      print('no es una eleccion valida intentalo de nuevo\n')


run_game()

Les comparto la solucion a mi manera, adem谩s con reinicio del juego.
https://github.com/JuanCode29/fundamentosPython2/blob/main/proyecto.py

Les dejo mi aporte

import random

#opciones del juego"
rounds = 1
computer_wins = 0
user_wins = 0
game = True


#Funcion que obtiene las opciones del jugador y la computadora
def choose_options():
  #opciones del juego
  options = ("papel", "tijera", "piedra")
  # el usuario selecciona su opci贸n
  user_option = input('\nPiedra, papel o tijera: ').lower()

  #validamos la opci贸n del usuario
  if not user_option in options:
    user_option = ''
    print('\n Opps, opci贸n no valida, intenta de nuevo \n')

  # seleccionamos una opci贸n random para la computadora
  computer_option = random.choice(options)

  return user_option, computer_option


def validate_winner(user_option, computer_option):
  winner = ''
  #Validaciones
  if user_option == computer_option:
    print('\nEmpate')
    winner = 'tie'
  elif user_option == 'piedra':
    if computer_option == 'tijera':
      print('\nPiedra gana a tijera, Ganaste')
      winner = 'user_win'
    else:
      print('\nPiedra gana a tijera, te han vencido')
      winner = 'computer_win'
  elif user_option == 'papel':
    if computer_option == 'tijera':
      print('\nTijera gana a papel, perdiste =(')
      winner = 'computer_win'
    else:
      print('\nPapel gana a piedra, ganaste')
      winner = 'user_win'
  elif user_option == 'tijera':
    if computer_option == 'papel':
      print('\nTijera gana a papel, ganaste')
      winner = 'user_win'
    else:
      print('\nPiedra le gana a tijera, perdiste')
      return 'computer_win'
  return winner


while game:
  print('\n')
  print('*' * 10)
  print('ROUND: ', rounds)
  print('*' * 10)

  user_option, computer_option = choose_options()

  if (user_option == ''):
    continue

  print("\nComputer option: ", computer_option)
  print("User option: ", user_option)

  #Validamos quien fue el ganador
  winner = validate_winner(user_option, computer_option)

  #Aumentamos el conteo de victorias
  if (winner == 'user_win'):
    user_wins += 1
  elif (winner == 'computer_win'):
    computer_wins += 1

  #Validamos las wins de los jugadores
  if (user_wins >= 2):
    print(f"\n隆Despues de {rounds} rounds has salido victorioso!")
  elif (computer_wins >= 2):
    print(f"\nTr谩s {rounds} rounds has sido vencido =(, intententalo de nuevo")

  #preguntamos si quieren seguir jugando
  if (user_wins >= 2 or computer_wins >= 2):
    print('*' * 10)
    game = input('驴Deseas seguir jugando? (y/n) ')
    print('*' * 10)
    if (game == 'n'):
      game = False
    else:
      rounds = 0
      user_wins = 0
      computer_wins = 0

  #Aumentamos un round
  rounds += 1

Si a alguien le quedan dudas del Scope, siempre est谩n los contenidos en otras fuentes

https://www.w3schools.com/python/python_scope.asp

https://www.programiz.com/python-programming/global-local-nonlocal-variables

Esta es la ultima parte a implementar que dejaste como reto, le agregue al metodo 3 return para que devolviera resultados booleanos y un if not para que validara el return y as铆 pudiera termina el juego y no quedar谩 un ciclo infinito.

def check_winner(user_wins, computer_wins):
    
    print(f'''
    馃 Computer wins: {computer_wins}
    馃檵 User wins: {user_wins}
            ''')
    
    if user_wins == 3:
        print('馃帠锔 El ganador es User 馃帠锔')
        return False
        
    if computer_wins == 3:
        print('馃帠锔 El ganador es Computer 馃帠锔')
        return False

    return True


def run_game():
    computer_wins = 0  
    user_wins = 0
    rounds = 1

    while True:
        print('***' * 10)
        print('Round ', rounds)
        print('***' * 10)

        rounds += 1
        user_option, computer_option = choose_options()
        user_wins, computer_wins = check_rules(user_option, computer_option,user_wins, computer_wins)
        if not check_winner(user_wins, computer_wins):
            break
run_game()