Juego de Pitón Piedra, Papel o Tijera

Crea un juego de piedra, papel y tijera en Python. Domine las elecciones aleatorias, la validación de las entradas del usuario y las asignaciones de reglas relacionales.

Pruébelo en el editor

Descripción general

Piedra, papel y tijera es un desafío de lógica de juego estándar. Requiere verificar las entradas con respecto a reglas de juego específicas y determinar un ganador.

En lugar de escribir tediosas escaleras if/else de varias capas, podemos implementar reglas utilizando un diccionario de mapeo. Esto es altamente escalable, lo que permite una fácil expansión de las reglas (por ejemplo, agregar Lizard y Spock).

El script elige aleatoriamente entre las opciones estándar, las compara con la elección del jugador e imprime los resultados, incluidas las actualizaciones de la puntuación.

Código y salida de ejecución

Un script de Piedra, papel o tijera que ilustra la coincidencia de reglas del diccionario y módulos aleatorios.

import random

def get_winner(player, computer):
    if player == computer:
        return "tie"
        
    # Dictionary mapping choice -> what it beats
    winning_rules = {
        "rock": "scissors",
        "paper": "rock",
        "scissors": "paper"
    }
    
    if winning_rules[player] == computer:
        return "player"
    return "computer"

def play_game():
    choices = ["rock", "paper", "scissors"]
    # Mocking player selections
    player_moves = ["rock", "paper", "scissors"]
    
    print("Rock, Paper, Scissors Game!")
    
    # Seed generator for deterministic outputs
    random.seed(11)
    
    for player_move in player_moves:
        computer_move = random.choice(choices)
        winner = get_winner(player_move, computer_move)
        
        print(f"\nPlayer chose:   {player_move.capitalize()}")
        print(f"Computer chose: {computer_move.capitalize()}")
        
        if winner == "tie":
            print("Result: It is a Tie!")
        elif winner == "player":
            print("Result: Player Wins!")
        else:
            print("Result: Computer Wins!")

play_game()
Salida terminal
Rock, Paper, Scissors Game!

Player chose:   Rock
Computer chose: Scissors
Result: Player Wins!

Player chose:   Paper
Computer chose: Paper
Result: It is a Tie!

Player chose:   Scissors
Computer chose: Rock
Result: Computer Wins!

Implementación paso a paso

  • Matrices de verificación de reglas decisivas
  • Motores selectores de números aleatorios
  • Proyectos de lógica de flujo de control educativo.

Preguntas frecuentes

¿Cómo puedo extender esto a Piedra-Papel-Tijera-Lagarto-Spock?

Simplemente expanda la asignación del diccionario `wining_rules` para que cada clave apunte a una lista de elementos que supere. Por ejemplo, `'roca': ['tijeras', 'lagarto']`.

¿Cómo hago para que el juego se ejecute infinitamente hasta que el usuario salga?

Envuelva la lógica de interacción dentro de un bucle " while True: " e interrumpa la ejecución si el jugador ingresa " salir ".

Temas relacionados