Intenta esto en su lugar
def myDef ():
myG, myAp = 0,0 # myG = 0 y myAp = 0
name = input (“Juguemos un juego, ¿cómo te llamas?”)
try_again = True
mientras try_again:
chll = input (“Muy bien, ¿quieres elegir una manzana:”)
chll = chll.upper () # hace que la entrada del usuario sea mayúscula
if (chll.startswith (“Y”)): # si la entrada de los usuarios comienza con Y
print (“Felicidades”, nombre, “lo hiciste!”)
myAp + = 1 # significa myAp = myAp +1
print (“¡Ahora tienes”, myAp, “manzanas!”)
más:
print (“Muy bien”, nombre, “¡no hay manzanas para ti!”)
chl = input (“¿Quieres volver a jugar:”)
chl = chl.upper ()
if (chl.startswith (“Y”)):
myDef ()
más:
try_again = False
if (myAp! = 0):
print (“Ok”, nombre, “Has decidido no volver a jugar”)
print (“\ r \ n”) # solo una nueva línea
chlll = input (“¿Le gustaría vender sus manzanas:”)
chlll = chlll.upper ()
if (chlll.startswith (“Y”)):
myGo = myG + myAp
myAp = 0
print (“Ahora tienes”, myGo, “oro y 0 manzanas”)
más:
print (“Tienes”, myG, “oro y”, myAp, “manzanas”)
de lo contrario: # el usuario no debería molestarse en vender si tiene 0 manzanas
print (“Tienes”, myG, “oro y”, myAp, “manzanas”)
regreso
Esto parece un poco más grande en tamaño pero va a hacer lo que quieras; efectivamente
Cambios:
- ¿Cuáles son algunos de los mejores juegos de Android?
- ¿Son necesarios los juegos en nuestra vida?
- ¿Cuál es un juego antiguo pero horrible que has jugado?
- ¿Cómo es que los videojuegos son tan mal representados en los programas de televisión?
- ¿Cómo afecta el juego a la educación?
- Se eliminó la variable myA porque su programa original nunca incrementó myA. Entonces, cuando el usuario vuelva a jugar, tendrá una sola manzana. El nuevo programa incrementa myA
- ¡Tienes que poner tus variables locales dentro de tu función! A menos que obtenga la referencia antes del error de asignación.
- Incluyó la variable try_again y la asignó a la variable booleana True. Cuando el usuario no quiere volver a jugar, el programa establece try_again en falso
- Incluyó la variable de nombre mucho más en los resultados para hacer que el juego sea más interactivo. Observe cómo pongo la entrada de nombre antes del bucle try_again. Si no se hace de esta manera, el usuario ingresará su nombre cada vez que intente jugar nuevamente
- Usó los métodos upper () y comienza con () en la entrada del usuario. El método upper () hace que la entrada del usuario sea en mayúsculas. Mientras que el método beginwith () verifica que la entrada de los usuarios comience con “Y” antes de continuar. De esta manera, el usuario puede escribir “y” o “sí” o “sí” en cualquier caso.
- Incluye un control if en la variable myAp. El usuario no debería molestarse en ver la opción de venta de manzana si su recuento de manzanas es 0.
Eso es más o menos, también debe considerar cambiar las variables de entrada del usuario chlll, chl y chll a algo más comprensivo.
PD: si tiene alguna pregunta o sugerencia y, lo que es más importante, si ha visto algún error, comente. Contestaré tan pronto como pueda.