Este sencillo tutorial de juego te ayudará a practicar los fundamentos de la programación en Python.

Crear un juego de "Piedra, papel o tijera" en Python es una excelente manera de mejorar sus habilidades de programación. Puede crear el juego con un solo script de Python y jugarlo en la línea de comando.

El juego comienza preguntando al jugador su elección: "piedra", "papel" o "tijeras". Luego espera a que ingresen su respuesta. Puedes jugar el juego contra un jugador de "computadora", que seleccionará automáticamente su movimiento.

El juego también puede incluir muchas rondas. Entonces, incluso si pierde la primera ronda, ¡aún puede intentar ganar dos de tres!

Cómo configurar el juego y pedirle al jugador su movimiento

Cuando comienza el juego, el programa Python debe pedirle al jugador que ingrese "piedra", "papel" o "tijeras" y tomar la respuesta del jugador. Para configurar un nuevo juego, comience creando un nuevo archivo de Python con una extensión .py.

El código completo de este tutorial está disponible en un repositorio de GitHub.

instagram viewer
  1. Crear un nuevo archivo llamado PiedraPapelTijeras.py.
  2. Abra el nuevo archivo de Python con cualquier editor de texto, como Notepad++ o Visual Studio Code.
  3. En la parte superior del archivo, importe el módulo aleatorio. Usará esto más adelante en el juego para seleccionar aleatoriamente un movimiento para el turno de la computadora.
    importar aleatorio
  4. Presente un mensaje al jugador, pidiéndole que ingrese piedra, papel o tijera.
    elección de usuario = entrada ("¿Piedra, papel o tijera? ").más bajo()
  5. Inicializa una matriz llamada "opciones de movimiento" que almacena una lista de los movimientos disponibles que tú o la computadora pueden jugar.
    moverOpciones = ['roca', 'papel', 'tijeras']
  6. Cuando el jugador ingresa una entrada, valídela para asegurarte de que sea uno de los movimientos disponibles. Una vez que el jugador haya ingresado un movimiento válido, imprima un mensaje de confirmación.
    mientras (Elección del usuario no en moverOpciones):
    elección de usuario = entrada ("Elección no válida. Debe ser piedra, papel o tijera: ").más bajo()

    imprimir("")
    imprimir(f"Tú elegiste {opción de usuario}.")

Cómo tomar turnos con la computadora y comparar movimientos

Una vez que haya ingresado su movimiento, la computadora tomará su turno seleccionando al azar "piedra", "papel" o "tijeras". Luego, el juego tendrá que comparar su jugada con la jugada de la computadora para determinar quién ganó.

  1. Use el módulo aleatorio para que la computadora seleccione al azar de la lista de movimientos disponibles.
    computerChoice = random.choice (movimientoOpciones)
    imprimir(f"La computadora eligió {opción de computadora}.")
  2. Deberá comparar su jugada con la jugada de la computadora para determinar quién ha ganado. Puede hacer esto creando un nuevo diccionario. Este diccionario contiene cada movimiento (por ejemplo, "roca") y qué movimiento gana o pierde (por ejemplo, "roca" vence a "tijeras" y pierde contra "papel").
    se mueve = {
    'roca': { 'latidos': 'tijeras', 'pierde a': 'papel' },
    'tijeras': { 'latidos': 'papel', 'pierde a': 'roca' },
    'papel': { 'latidos': 'roca', 'pierde a': 'tijeras' },
    }
  3. Usar la sentencia if de Python para verificar si su jugada y la jugada de la computadora resultan en un empate. De lo contrario, use el diccionario de movimientos para comparar el movimiento del jugador con el movimiento de la computadora.
    if ElecciónUsuario == ElecciónEquipo:
    imprimir(f"Tanto usted como la computadora eligieron {opción de usuario}. ¡Es un empate!")
    demás:
    si (mueve[opciónusuario]['latidos'] == opción de computadora):
    imprimir(F"{opción de usuario} latidos {opción de computadora}. ¡Tú ganas!")

    si (mueve[opciónusuario]['pierde a'] == opción de computadora):
    imprimir(F"{opción de usuario} pierde a {opción de computadora}. ¡La computadora gana!")
    Como ejemplo, si elige "rock", entonces el valor de los movimientos [userChoice] ['beats'] sería "scissors". Si la elección de la computadora fue "tijeras", eso significa que tu movimiento superó al de ellos.

Cómo mantener la puntuación entre el jugador y la computadora entre múltiples rondas

También puede agregar rondas adicionales, donde usted y la computadora toman tres turnos cada uno.

Una vez que usted y la computadora hayan elegido piedra, papel o tijera, el juego le preguntará nuevamente y hará un seguimiento de sus puntajes. La puntuación del jugador aumenta en función de quién ganó esa ronda en particular.

  1. El código actual representa una sola ronda de turnos realizados tanto por el jugador como por la computadora. Agregue todo el código actual excepto la declaración de importación dentro de una nueva función turn(). También puede cambiar los mensajes de salida en consecuencia, para decir "Usted gana esta ronda" en lugar de "Usted gana":
    definitivamentedoblar():
    elección de usuario = entrada ("¿Piedra, papel o tijera? ").más bajo()

    moverOpciones = ['roca', 'papel', 'tijeras']

    mientras (Elección del usuario no en moverOpciones):
    elección de usuario = entrada ("Elección no válida. Debe ser piedra, papel o tijera: ").más bajo()

    imprimir("")
    imprimir(f"Tú elegiste {opción de usuario}.")

    computerChoice = random.choice (movimientoOpciones)
    imprimir(f"La computadora eligió {opción de computadora}.")

    se mueve = {
    'roca': { 'latidos': 'tijeras', 'pierde a': 'papel' },
    'tijeras': { 'latidos': 'papel', 'pierde a': 'roca' },
    'papel': { 'latidos': 'roca', 'pierde a': 'tijeras' },
    }

    if ElecciónUsuario == ElecciónEquipo:
    imprimir(f"Tanto usted como la computadora eligieron {opción de usuario}. ¡Es un empate!")
    demás:
    si (mueve[opciónusuario]['latidos'] == opción de computadora):
    imprimir(F"{opción de usuario} latidos {opción de computadora}. ¡Tú ganas esta ronda!")

    si (mueve[opciónusuario]['pierde a'] == opción de computadora):
    imprimir(F"{opción de usuario} pierde a {opción de computadora}. ¡La computadora gana!")

  2. El jugador y la computadora pueden tomar tres turnos cada uno. Agregue una variable global llamada "giros" en la parte superior del archivo.
    vueltas = 3
  3. Después de la función turn(), usa un bucle for de Python para repetir la ronda tres veces. Al comienzo de cada ronda, imprima el número de ronda. Llame a la función turn() para pedirle al jugador y a la computadora que hagan sus movimientos para esa ronda.
    para i en rango (giros):
    imprimir("")
    imprimir(redondo {yo+1}: ")
    doblar()
  4. Para realizar un seguimiento de quién ganó cada ronda, agregue una variable de puntaje para cada jugador, en la parte superior del archivo. Asignará valores a estas variables dentro de la función turn(), así que asegúrese de usarlas como variables globales.
    puntuación del ordenador = 0
    Puntuación del jugador = 0

    definitivamentedoblar():
    global puntuación del ordenador, puntuación del jugador

  5. Dentro de la función turn(), una vez que tanto el jugador como la computadora hayan hecho su movimiento, agregue un punto a la puntuación del ganador. Modifique la instrucción if para incrementar el valor de la variable "playerScore" o "computerScore".
    si (mueve[opciónusuario]['latidos'] == opción de computadora):
    imprimir(F"{opción de usuario} latidos {opción de computadora}. ¡Tú ganas esta ronda!")
    Puntuación del jugador += 1

    si (mueve[opciónusuario]['pierde a'] == opción de computadora):
    imprimir(F"{opción de usuario} pierde a {opción de computadora}. ¡La computadora gana!")
    puntuación del ordenador += 1

  6. Al final de la función turn(), imprime una actualización de las puntuaciones totales de cada jugador.
    # Imprimir una actualización de las puntuaciones totales después de la ronda
    imprimir("")
    imprimir(f"MARCADOR | Puntuación del jugador: {puntuación del jugador} | Puntuación de la computadora: {computerScore}")
  7. Al final del juego, y después del ciclo for que repite los turnos del jugador y la computadora, imprime el ganador final.
    imprimir("")

    if (computerScore > playerScore):
    imprimir(f"La computadora gana con {computerScore} ¡puntos!")
    elif (puntuación del jugador > puntuación de la computadora):
    imprimir(f"Ganas con {puntuación del jugador} ¡puntos!")
    demás:
    imprimir(f"¡Es un empate! ambos ganan con {puntuación del jugador} ¡puntos!")

Cómo ejecutar el juego

Para jugar, ejecute el script de Python usando una terminal o símbolo del sistema. Ingrese su movimiento y espere a que la computadora haga el suyo. Una vez que haya completado tres rondas, el programa mostrará el ganador.

  1. Abra un símbolo del sistema o terminal y navegue a la carpeta donde está almacenando su archivo de Python.
  2. Use el comando python para ejecutar el script:
    pitónPiedra Papel tijeras.py
  3. Juega el juego ingresando 'piedra', 'papel' o 'tijeras'.

Aprende Python creando juegos

Crear juegos simples como "Piedra, papel o tijera" es una excelente manera de familiarizarse con los conceptos de programación. Hay tantos otros juegos divertidos que puedes crear con Python, como un juego de aventuras basado en texto.