Jeu Python Pierre Papier Ciseaux

Créez un jeu Pierre-Papier-Ciseaux en Python. Maîtrisez les choix aléatoires, la validation des entrées utilisateur et les mappages de règles relationnelles.

Essayez dans l'éditeur

Aperçu

Rock-Paper-Scissors est un défi logique de jeu standard. Cela nécessite de vérifier les entrées par rapport à des règles de jeu spécifiques et de déterminer un gagnant.

Au lieu d’écrire de fastidieuses échelles if/else multicouches, nous pouvons implémenter des règles à l’aide d’un dictionnaire de mappage. Ceci est hautement évolutif, permettant une extension facile des règles (par exemple, en ajoutant Lizard et Spock).

Le script choisit au hasard parmi les choix standard, le compare au choix du joueur et imprime les résultats, y compris les mises à jour des scores.

Sortie de code et d'exécution

Un script Pierre Papier Ciseaux illustrant la correspondance des règles du dictionnaire et les modules aléatoires.

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()
Sortie terminale
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!

Mise en œuvre étape par étape

  • Matrices de vérification des règles décisives
  • Moteurs de sélection de nombres aléatoires
  • Projets éducatifs de logique de flux de contrôle

Foire aux questions

Comment puis-je étendre cela à Rock-Paper-Scissors-Lizard-Spock ?

Développez simplement le mappage du dictionnaire `winner_rules` afin que chaque clé pointe vers une liste d'éléments qu'elle bat. Par exemple, « roche » : [« ciseaux », « lézard »] ».

Comment faire fonctionner le jeu à l'infini jusqu'à ce que l'utilisateur quitte ?

Enveloppez la logique d'interaction dans une boucle « while True : » et interrompez l'exécution si le joueur saisit « quitter ».

Sujets connexes