30 ⭐ Dice Roller Program

Obiettivi di apprendimento:

  • Applicare il modulo random per simulare eventi casuali.
  • Utilizzare i cicli while per il loop di gioco continuo.
  • Gestire l'input dell'utente per definire la continuazione del gioco.

Programma Esempio:

import random
import time # Utile per simulare il 'lancio'

def dice_roller_program():
    print("⚂ SIMULATORE DI DADI ⚂")

    while True:
        # Input per specificare il tipo di dado (es. D6, D20)
        try:
            lati_dado = int(input("Quanti lati ha il dado (es. 6, 20)? Inserisci 0 per uscire: "))

            if lati_dado == 0:
                print("Grazie per aver giocato!")
                break

            if lati_dado < 2:
                print("❌ Un dado deve avere almeno 2 lati.")
                continue

            # Input per la quantità di dadi
            quantita = int(input("Quanti dadi vuoi lanciare? "))

            if quantita <= 0:
                print("❌ Devi lanciare almeno un dado.")
                continue

            risultati = []
            somma_totale = 0

            print("\nLancio in corso...")
            time.sleep(0.5) # Breve pausa per simulare l'attesa

            # Ciclo for per lanciare il numero specificato di dadi
            for i in range(quantita):
                # Genera un numero casuale tra 1 e il numero di lati (inclusivo)
                risultato = random.randint(1, lati_dado)
                risultati.append(risultato)
                somma_totale += risultato

            # Stampa i risultati
            print(f"\nRisultati dei lanci (D{lati_dado}): {risultati}")
            print(f"Somma Totale: {somma_totale}")

        except ValueError:
            print("❌ Input non valido. Inserisci un numero intero.")

# dice_roller_program()