Estoy queriendo hacer un juego de Piedra, Papel o Tijera en Python, nada complicado. El jugador empieza con 2 puntos y dependiendo si gana o pierda se suma o se resta valor. El problema es que no se guarda en la variable que yo declaro primero, de modo que aunque llegue a 0 puntos el while se sigue ejecutando.
from random import randintpi = "Piedra"pa = "Papel"ti = "Tijera"puntos = 2while puntos > 0: elemento = input("¿Piedra, papel o tijera? : ") maquina = randint(0,2) def piedra(puntos): if elemento.lower() == "piedra" and maquina == 0: print ("Empate, la maquina eligio ", pi , " ! ") elif elemento.lower() == "piedra" and maquina == 1: print ("Perdiste, la maquina eligio ", pa, " ! ") puntos -= 2 print ("Tienes " , puntos , " puntos.") elif elemento.lower() == "piedra" and maquina == 2: print ("Ganaste, la maquina eligio ", ti, " ! ") puntos += 2 print ("Tienes " , puntos , " puntos.") def papel(puntos): if elemento.lower() == "papel" and maquina == 0: print ("Ganaste, la maquina eligio ", pi, " ! ") print ("Tienes " , puntos , " puntos.") puntos += 2 elif elemento.lower() == "papel" and maquina == 1: print ("Empate, la maquina eligio ", pa, " ! ") elif elemento.lower() == "papel" and maquina == 2: print ("Perdiste, , la maquina eligio " , ti, " ! ") puntos -= 2 print ("Tienes " , puntos , " puntos.") def tijera(puntos): if elemento.lower() == "tijera" and maquina == 0: print ("Perdiste, la maquina eligio " , pi, " ! ") puntos -= 2 print ("Tienes " , puntos , " puntos.") elif elemento.lower() == "tijera" and maquina == 1: print ("Ganaste, la maquina eligio " , pa, " ! ") print ("Tienes " , puntos , " puntos.") puntos += 2 elif elemento.lower() == "tijera" and maquina == 2: print ("Empate, la maquina eligio " , ti, " ! ") piedra(puntos) papel(puntos) tijera(puntos)