Entrada destacada

Como usar enums en Android, kotlin

Programando Piedra, Papel o Tijera en Python.

Descripción

Ejercitando un poco el uso de estructuras condicionales veamos como programar este juego, y que también pueda servirnos como introducción a la Programación de Videojuegos.
En un juego es necesario que podamos tomar decisiones, que exista aleatoriedad, y que podamos interactuar con el programa.
Para poder ingresar datos desde el teclado utilizamos input, lo que que nos retorna esta función es una cadena de caracteres, entonces si queremos introducir un número utilizaríamos una mascara de conversión, de la siguiente forma:

1
2
Numero = int(input("Ingresa número:"))
print(Numero)

Las sentencias condicionales if pueden ayudarnos a que un juego sea dinámico, así podremos tomar decisiones. ¿Cuantas vidas quedan?, ¿Hubo una colisión entre el asteroide y la nave?, ¿El juego ha terminado?
Utilizaremos elif, para hacer selecciones múltiples.


Y por ultimo para hacer que algo sea aleatorio, digamos un número, utilizaremos la librería random, para poder simular que la computadora toma una decisión.
Con randrange(), obtenemos un valor aleatorio en el rango especificado, por ejemplo:

1
randrange(0, 3) #Los valores que pueden salir son 0 o 1 o 2, tres no es considerado

Especificaciones para crear el juego.
  • Crea un programa que imprima aleatoriamente 0, 1, o 2.
  • Usando sentencias if, expandir el programa de manera que ahora imprima al azar piedra, papel o tijera. 
  • Añadir al programa la opción de que primero le pregunte al usuario qué es lo que elige(Sería más fácil darle a escoger entre las opciones 1, 2, o 3).
  • Añadir una declaración condicional para determinar quién gana.

Ejemplo Completo.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#encoding:UTF-8
import random

aleatorio = random.randrange(0, 3)
eligePc = ""
print("1)Piedra")
print("2)Papel")
print("3)Tijera")
opcion = int(input("Que eliges: "))

if opcion == 1:
    eligeUsuario = "piedra"
elif opcion == 2:
    eligeUsuario = "papel"
elif opcion == 3:
    elijeUsuario = "tijera"
print("Tu eliges: ", eligeUsuario)

if aleatorio == 0:
    eligePc = "piedra"
elif aleatorio == 1:
    eligePc = "papel"
elif aleatorio == 2:
    eligePc = "tijera"
print("PC eligió: ", eligePc)
print("...")
if eligePc == "piedra" and eligeUsuario == "papel":
    print("Ganaste, papel envuelve piedra")
elif eligePc == "papel" and eligeUsuario == "tijera":
    print("Ganaste, Tijera corta papel")
elif eligePc == "tijera" and eligeUsuario == "piedra":
    print("Ganaste, Piedra pisa tijera")
if eligePc == "papel" and eligeUsuario == "piedra":
    print("perdiste, papel envuelve piedra")
elif eligePc == "tijera" and eligeUsuario == "papel":
    print("perdiste, Tijera corta papel")
elif eligePc == "piedra" and eligeUsuario == "tijera":
    print("perdiste, Piedra pisa tijera")
elif eligePc == eligeUsuario:
    print("empate")

Comentarios

  1. Si tienes dudas en como ejecutar el código aquí unos sencillos pasos:
    1. ir a https://www.python.org/downloads/ y descargar la versión más reciente de python.
    2.Instalar pyhton.
    3.Abrir IDLE, ir a file->new file pegar el código del ejemplo
    4.Guardar el archivo con la extensión .py y ejecutar

    ResponderEliminar
  2. Vaya basura de programa no me ha ayudado en nada

    ResponderEliminar
  3. Se tarda demaciado para correr, la pregunta es, por que?. espero su respuesta.

    ResponderEliminar
  4. Muchas gracias, si funciono perfectamente.

    ResponderEliminar
  5. se cierra al instante

    ResponderEliminar
  6. Problemas en la intersección A ósea problemas en la casilla 9

    ResponderEliminar
  7. tengo problemas en la casilla 17

    ResponderEliminar
  8. como debe ser realmente el codigo:
    import random
    aleatorio = random.randrange(1,3)
    lista= ["1)papel","2)piedra","3)tijeras"]
    print (lista)
    opc = int(input ("elije una opcion, escribiendo el numero: "))

    if opc == 1:
    Usuario = "piedra"
    elif opc == 2:
    Usuario = "papel"
    elif opc == 3:
    Usuario = "tijera"
    print("Tu eliges: ", Usuario)

    if aleatorio == 1:
    eligePc = "piedra"
    elif aleatorio == 2:
    eligePc = "papel"
    elif aleatorio == 3:
    eligePc = "tijera"
    print("PC eligió: ", eligePc)
    print("...")
    if eligePc == "piedra" and Usuario == "papel":
    print("Ganaste, papel envuelve piedra")
    elif eligePc == "papel" and Usuario == "tijera":
    print("Ganaste, Tijera corta papel")
    elif eligePc == "tijera" and Usuario == "piedra":
    print("Ganaste, Piedra pisa tijera")
    if eligePc == "papel" and Usuario == "piedra":
    print("perdiste, papel envuelve piedra")
    elif eligePc == "tijera" and Usuario == "papel":
    print("perdiste, Tijera corta papel")
    elif eligePc == "piedra" and Usuario == "tijera":
    print("perdiste, Piedra pisa tijera")
    elif eligePc == Usuario:
    print("empate")

    ResponderEliminar
  9. muy complicado porque se complican tanto la vida


    import random

    rock= ("""
    _______
    ---' ____)
    (_____)
    (_____)
    (____)
    ---.__(___)
    """)

    # Paper
    paper=("""
    _______
    ---' ____)____
    ______)
    _______)
    _______)
    ---.__________)
    """)

    # Scissors
    scissors=("""
    _______
    ---' ____)____
    ______)
    __________)
    (____)
    ---.__(___)
    """)

    seleccion =[rock, paper, scissors]
    select_user = int(input("seleccione 0 para piedra, 1 para papel y 2 para tijera : "))
    select_pc = random.randint(0, 2)
    if select_pc == select_user:
    print(f"user {seleccion[select_user]}\nPC {seleccion[select_pc]} ")
    print("ES UN EMPATE")
    elif select_user ==0 and select_pc == 2 or select_user == 1 and select_pc ==0 or select_user == 2 and select_pc == 1:
    print(f"user {seleccion[select_user]}\nPC {seleccion[select_pc]} ")
    print("HAS GANADO")
    else:
    print(f"user {seleccion[select_user]}\nPC {seleccion[select_pc]} ")
    print("HAS PERDIDO")


    posdata no lo he copiado y pegado estoy en viendo un curso bootcam 100 day code de una chinita de londres aunque me quedo mejor que en curso que estoy aprendiendo solo con entender la logica lo demas es nada.. si tiene algun error avisan ...

    ResponderEliminar
    Respuestas
    1. error dusculpen los caracteres assci si los suatraje de una pagina no soy artista

      Eliminar

Publicar un comentario