×

Esercizio con Python: il gioco “Forbice, Sasso, Carta”

Esercizio con Python: il gioco “Forbice, Sasso, Carta”

Il gioco di Forbice, Sasso, Carta è uno dei più semplici e conosciuti al mondo. Grazie a Python, possiamo facilmente creare una versione interattiva che ci permette di giocare contro il computer. In questo articolo, realizzeremo un programma che:

  • Chiede all’utente di scegliere tra “forbice”, “sasso” o “carta”.
  • Il computer seleziona casualmente una delle tre opzioni.
  • Viene determinato il vincitore in base alle regole classiche del gioco.
  • L’utente può decidere se giocare di nuovo o terminare la partita.

Scrivere il codice

Di seguito trovi il codice Python completo per giocare a Forbice, Sasso, Carta:

import random

def forbice_sasso_carta():
    opzioni = ["forbice", "sasso", "carta"]
    
    print("Benvenuto nel gioco Forbice, Sasso, Carta!")
    
    while True:
        scelta_utente = input("Scegli: forbice, sasso o carta? ").strip().lower()
        
        if scelta_utente not in opzioni:
            print("Scelta non valida. Riprova.")
            continue
        
        scelta_computer = random.choice(opzioni)
        print(f"Il computer ha scelto: {scelta_computer}")
        
        if scelta_utente == scelta_computer:
            print("Pareggio! Riprova.")
        elif (scelta_utente == "forbice" and scelta_computer == "carta") or \
             (scelta_utente == "sasso" and scelta_computer == "forbice") or \
             (scelta_utente == "carta" and scelta_computer == "sasso"):
            print("Hai vinto!")
        else:
            print("Hai perso! Riprova.")
        
        riprova = input("Vuoi giocare di nuovo? (sì/no): ").strip().lower()
        if riprova != "sì":
            print("Grazie per aver giocato!")
            break

# Avvio del gioco
forbice_sasso_carta()

Spiegazione del codice

  1. Scelta dell’utente: Il programma chiede all’utente di inserire “forbice”, “sasso” o “carta”.
  2. Scelta casuale del computer: Il computer seleziona una delle tre opzioni in modo casuale.
  3. Determinazione del vincitore: Viene controllato chi ha vinto secondo le regole del gioco:
    • La forbice batte la carta.
    • Il sasso batte la forbice.
    • La carta batte il sasso.
  4. Gestione del ciclo di gioco: Dopo ogni partita, l’utente può decidere se giocare di nuovo o terminare.

Questo gioco è un ottimo esercizio per imparare Python, specialmente per chi vuole praticare input dell’utente, strutture condizionali e generazione di numeri casuali. Può essere migliorato aggiungendo un sistema di punteggio, una grafica o persino trasformandolo in un’app interattiva con una libreria come Tkinter o Pygame. Buon divertimento con Python!