Gioco Python Sasso Carta Forbici

Crea un gioco Sasso-Carta-Forbici in Python. Padroneggia le scelte casuali, la convalida degli input dell'utente e la mappatura delle regole relazionali.

Prova nell'editor

Panoramica

Sasso-Carta-Forbici è una sfida logica di gioco standard. Richiede la verifica degli input rispetto a specifiche regole del gioco e la determinazione di un vincitore.

Invece di scrivere noiose scale if/else multistrato, possiamo implementare le regole utilizzando un dizionario di mappatura. Questo è altamente scalabile e consente una facile espansione delle regole (ad esempio, aggiungendo Lizard e Spock).

Lo script sceglie in modo casuale tra le scelte standard, lo confronta con la scelta del giocatore e stampa i risultati inclusi gli aggiornamenti del punteggio.

Codice e output di esecuzione

Uno script di Rock Paper Scissors che illustra la corrispondenza delle regole del dizionario e i moduli casuali.

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()
Uscita 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!

Implementazione passo dopo passo

  • Matrici di verifica delle regole decisive
  • Motori di selezione di numeri casuali
  • Progetti di logica del flusso di controllo educativo

Domande frequenti

Come posso estenderlo a Sasso-Carta-Forbici-Lucertola-Spock?

Espandi semplicemente la mappatura del dizionario `wining_rules` in modo che ogni tasto punti a un elenco di elementi che batte. Ad esempio, "roccia": ['forbici', 'lucertola']`.

Come faccio a far funzionare il gioco all'infinito finché l'utente non esce?

Avvolgi la logica dell'interazione all'interno di un ciclo ` while True:` e interrompi l'esecuzione se il giocatore inserisce "quit".

Argomenti correlati